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.