web-dev-qa-db-fra.com

Enregistrer une classe d'application dans Manifest?

J'ai une classe d'application pour conserver l'état global de mon application. Mais je ne peux pas l'enregistrer dans le fichier manifeste? Une idée comment faire ça?

167
Sharj

S'il provient d'Application, ajoutez le nom complet (espace de nom + nom de classe) en tant que Android:name paramètre de l'élément d'application dans votre manifeste.

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

Ou si le package de la classe peut être décrit comme relatif par rapport à package dans la balise manifest, commencez simplement par un .:

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

    <application
        Android:name=".ApplicationEx"
308
Rich

mais si vous utilisez déjà une bibliothèque comme celle de branch.io, alors très probablement votre manifeste

<application name="">

la propriété aura déjà un nom comme

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

dans ce cas, vous devez d'abord étendre votre classe d'applications, comme ci-dessous:

public class Application extends BranchApp

puis enregistrez votre candidature dans manifest comme:

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

cela fonctionne parfaitement pour moi :) j'espère que cela aidera quelqu'un en difficulté :)

9
Bawa

Si vous utilisez une application MultiDex, "Android: name" sera déjà utilisé. Par conséquent, prolongez Android.support.multidex.MultiDexApplication:

public class MyApplication extends MultiDexApplication {...}

Et ajoutez-le au manifeste Android:

Android:name="app.package.MyApplication"
5
Anos K. Mhazo