2010-05-28 17 views
123

Ich habe eine Application-Klasse, um den globalen Status meiner Anwendung zu behalten. Aber ich kann es nicht in der Manifest-Datei registrieren? Irgendeine Idee, wie man das macht?App-Klasse in Manifest registrieren?

Antwort

238

Wenn es von Application abgeleitet wird, fügen Sie den vollständig qualifizierten Namen (Namespace + Klassenname) als android:name-Parameter des Anwendungselements in Ihrem Manifest hinzu.

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

Oder, wenn die Klasse Paket kann auf die package im manifest Tag als relativ beschrieben, dann startet nur mit .:

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

    <application 
     android:name=".ApplicationEx" 
5

aber im Fall verwenden Sie bereits einige Bibliotheken wie branch.io Bibliothek dann höchstwahrscheinlich Ihr Manifest

<application name="">

Eigenschaft al bereit haben einige Namen wie

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

in diesem Fall müssen Sie zuerst Ihre Anwendungsklasse erweitern, wie unten:

public class Application extends BranchApp 

und dann Ihre Anwendung registrieren in manifestieren als:

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

das funktioniert perfekt für mich :) ich hoffe es hilft jemandem in schwierigkeiten :)

+0

seine seit einer Weile schrieb diese Antwort aber was, wenn ich gleichzeitig branch.io und clevertap hinzufügen möchte. Ich bin verwirrt, wie man mit dem Namensschild im Manifest umgeht. bitte hilf mir. –

4

Wenn Sie eine MultiDex Anwendung verwenden, haben Sie bereits "android: name" in Gebrauch statt android.support.multidex.MultiDexApplication so erweitern:

public class MyApplication extends MultiDexApplication {...} 

Und es dem Android Manifest hinzufügen:

android:name="app.package.MyApplication" 
+0

Großartig. Das ist eine Lösung für mein Problem. Danke: D –