web-dev-qa-db-ja.com

マニフェストにアプリケーションクラスを登録しますか?

アプリケーションのグローバルな状態を保持するためのApplicationクラスが1つあります。しかし、マニフェストファイルに登録できませんか?これを行う方法はありますか?

167
Sharj

Applicationから派生する場合は、完全修飾(名前空間+クラス名)をマニフェストの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"
308
Rich

ただし、branch.ioのライブラリなどのライブラリを既に使用している場合は、おそらくマニフェスト

<application name="">

プロパティにはすでに次のような名前が付いています

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

その場合、以下のように、最初にアプリケーションクラスを拡張する必要があります。

public class Application extends BranchApp

次に、アプリケーションをマニフェストに次のように登録します。

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

これは私のために完璧に動作します:)私はそれがトラブルの誰かを助けることを願っています:)

9
Bawa

MultiDexアプリケーションを使用している場合、「Android:name」が既に使用されているため、代わりにAndroid.support.multidex.MultiDexApplicationを拡張します。

public class MyApplication extends MultiDexApplication {...}

そして、Androidマニフェストに追加します。

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