Registrare la classe di applicazione in Manifest?


189

Ho una classe di applicazione per mantenere lo stato globale della mia applicazione. Ma non riesco a registrarlo nel file manifest? Qualche idea su come farlo?

Risposte:


346

Se deriva da Applicazione, aggiungi il completo (namespace + nome classe) come android:nameparametro dell'elemento application nel tuo manifest.

<application
        android:name="com.you.yourapp.ApplicationEx"

Oppure, se il pacchetto della classe può essere descritto come relativo al tag packagenel manifesttag, inizia con un .:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.you.yourapp">

    <application
        android:name=".ApplicationEx"

2
La documentazione dice "nome completo". Una volta ho sperimentato uno strumento di terze parti che lo interpretava letteralmente e non funzionava quando cercavo di trovare la classe dell'applicazione, se specificato relativamente. Solo un avvertimento.
— Jens Vesti,

13

ma nel caso in cui tu stia già utilizzando una libreria come la libreria di branch.io, molto probabilmente il tuo manifest

<application name="">

la proprietà avrà già un nome come

`<application name="io.referral.BranchApp">

in tal caso devi prima estendere la tua classe di applicazione, come di seguito:

public class Application extends BranchApp

e quindi registra l'applicazione in manifest come:

android:name="absdevelopers.com.brankreferal.Application"

questo funziona perfettamente per me :) spero che aiuti qualcuno in difficoltà :)


è da un po 'che scrivi questa risposta, ma cosa succede se voglio aggiungere branch.io e clevertap allo stesso tempo. Mi sto confondendo su come gestire il nome in manifest. per favore aiutatemi.
— jitendra purohit

7

Se stai usando un'applicazione MultiDex avrai già "android: name" in uso, quindi estendi android.support.multidex.MultiDexApplication:

public class MyApplication extends MultiDexApplication {...}

E aggiungilo al manifest Android:

android:name="app.package.MyApplication"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.