Registrar classe de aplicativo no manifesto?


189

Eu tenho uma classe de aplicativo para manter o estado global do meu aplicativo. Mas não consigo registrá-lo no arquivo de manifesto? Alguma idéia de como fazer isso?

Respostas:


346

Se deriva de Application, adicione o totalmente qualificado (namespace + nome da classe) como o android:nameparâmetro do elemento do aplicativo no manifesto.

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

Ou, se o pacote da classe puder ser descrito como relativo ao packagena manifesttag, comece com um .:

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

    <application
        android:name=".ApplicationEx"

2
A documentação diz "nome completo". Eu já experimentei uma ferramenta de terceiros interpretando isso literalmente e não funcionando ao tentar encontrar a classe do aplicativo, se especificado relativamente. Apenas um aviso.
Jens Vesti

13

mas caso você já esteja usando alguma biblioteca como a biblioteca de branch.io, provavelmente o seu manifesto

<application name="">

propriedade já terá algum nome como

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

nesse caso, você precisa estender sua classe de aplicativo, como abaixo:

public class Application extends BranchApp

e registre seu aplicativo no manifesto como:

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

isso funciona perfeitamente para mim :) espero que ajude alguém com problemas :)


Já faz algum tempo que você escreveu esta resposta, mas e se eu quiser adicionar o branch.io e o clevertap ao mesmo tempo? Estou ficando confuso sobre como lidar com crachá no manifesto. por favor, me ajude.
Jitendra purohit 03/03/19

7

Se você estiver usando um aplicativo MultiDex, já terá "android: name" em uso, então estenda android.support.multidex.MultiDexApplication:

public class MyApplication extends MultiDexApplication {...}

E adicione-o ao manifesto do Android:

android:name="app.package.MyApplication"
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.