Daftarkan kelas Aplikasi dalam Manifest?

189

Saya memiliki satu kelas Aplikasi untuk menjaga status global aplikasi saya. Tetapi saya tidak dapat mendaftarkannya dalam file Manifest? ada ide bagaimana mengerjakan ini?

Sharj
sumber

Jawaban:

346

Jika berasal dari Aplikasi, tambahkan kualifikasi penuh (namespace + nama kelas) sebagai android:nameparameter elemen aplikasi dalam manifes Anda.

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

Atau jika paket kelas dapat digambarkan sebagai relatif ke packagedalam manifesttag, maka mulailah dengan .:

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

    <application
        android:name=".ApplicationEx"
Kaya
sumber
2
Dokumentasi mengatakan "nama yang memenuhi syarat". Saya pernah mengalami alat pihak ke-3 menafsirkan ini secara harfiah, dan tidak berfungsi ketika mencoba menemukan kelas aplikasi, jika ditentukan secara relatif. Hanya sebuah peringatan.
Jens Vesti
13

tetapi jika Anda sudah menggunakan beberapa perpustakaan seperti perpustakaan branch.io maka kemungkinan besar manifes Anda

<application name="">

properti sudah akan memiliki beberapa nama seperti

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

dalam hal ini Anda perlu memperpanjang kelas aplikasi Anda, seperti di bawah ini:

public class Application extends BranchApp

dan kemudian daftarkan aplikasi Anda dalam manifes sebagai:

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

ini bekerja dengan baik untuk saya :) saya harap ini membantu seseorang dalam kesulitan :)

Bawa
sumber
sudah lama Anda menulis jawaban ini tetapi bagaimana jika saya ingin menambahkan branch.io dan clevertap pada saat yang sama. Saya jadi bingung bagaimana menangani tag nama dalam manifes. tolong bantu saya.
jitendra purohit
7

Jika Anda menggunakan aplikasi MultiDex, Anda sudah memiliki "android: name" yang digunakan, jadi perluas android.support.multidex.MultiDexApplication:

public class MyApplication extends MultiDexApplication {...}

Dan tambahkan ke manifes Android:

android:name="app.package.MyApplication"
Anos K. Mhazo
sumber