Registrarse clase de aplicación en manifiesto?


189

Tengo una clase de aplicación para mantener el estado global de mi aplicación. ¿Pero no puedo registrarlo en el archivo de manifiesto? ¿Alguna idea de cómo se hace esto?

Respuestas:


346

Si se deriva de la Aplicación, agregue el totalmente calificado (espacio de nombres + nombre de clase) como el android:nameparámetro del elemento de aplicación en su manifiesto.

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

O si el paquete de la clase se puede describir como relativo al packagede la manifestetiqueta, simplemente comience con un .:

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

    <application
        android:name=".ApplicationEx"

2
La documentación dice "nombre completo". Una vez he experimentado una herramienta de terceros que interpreta esto literalmente, y no funciona cuando intento encontrar la clase de aplicación, si se especifica relativamente. Sólo una advertencia.
Jens Vesti

13

pero en caso de que ya esté utilizando alguna biblioteca como la biblioteca de branch.io, lo más probable es que su manifiesto

<application name="">

la propiedad ya tendrá algún nombre como

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

en ese caso, primero debe extender su clase de aplicación, como a continuación:

public class Application extends BranchApp

y luego registre su aplicación en manifiesto como:

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

esto funciona perfectamente para mí :) espero que ayude a alguien en problemas :)


ha pasado un tiempo en que escribiste esta respuesta, pero ¿qué pasa si quiero agregar branch.io y clevertap al mismo tiempo? Me estoy confundiendo cómo tratar con la etiqueta de nombre en manifiesto. Por favor, ayúdame.
jitendra purohit

7

Si está utilizando una aplicación MultiDex, ya tendrá "android: nombre" en uso, por lo tanto, extienda android.support.multidex.MultiDexApplication:

public class MyApplication extends MultiDexApplication {...}

Y agréguelo al manifiesto de Android:

android:name="app.package.MyApplication"
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.