Зареєструвати клас додатків у Manifest?


189

У мене є один клас додатків для збереження глобального стану моєї програми. Але я не можу зареєструвати його у файлі Manifest? Будь-яка ідея, як це зробити?

Відповіді:


346

Якщо він походить від Application, додайте повністю кваліфікований (простір імен + ім'я класу) як android:nameпараметр елемента програми у вашому маніфесті.

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

Або , якщо пакет класу можна описати як по відношенню до packageв manifestтезі, то просто почніть з .:

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

    <application
        android:name=".ApplicationEx"

2
У документації зазначено "повністю кваліфіковане ім'я". Я один раз відчував, як сторонній інструмент інтерпретував це буквально, і не працював при спробі знайти клас додатків, якщо зазначено відносно. Просто попередження.
Jens Vesti

13

але якщо ви вже використовуєте таку бібліотеку, як бібліотека branch.io, то, швидше за все, ваш маніфест

<application name="">

властивість вже матиме якусь назву на кшталт

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

у такому випадку вам потрібно спочатку розширити клас заявки, як нижче:

public class Application extends BranchApp

а потім зареєструйте свою заявку в маніфесті як:

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

це прекрасно працює для мене :) Я сподіваюся, що це допоможе комусь у біді :)


минув час, коли ви написали цю відповідь, але що робити, якщо я хочу одночасно додати branch.io та smartvertap. Я заплутався, як поводитися з тегом імені в маніфесті. будь ласка, допоможіть мені.
jitendra purohit

7

Якщо ви використовуєте програму MultiDex, у вас уже буде "android: name", а замість цього подовжуйте android.support.multidex.MultiDexApplication:

public class MyApplication extends MultiDexApplication {...}

І додайте його до маніфесту Android:

android:name="app.package.MyApplication"
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.