2017-09-19 4 views
1

基本的に私はKotlinとDagger2で書かれたプロジェクトを持っています。私は1つの基本機能を実装しようとしています。ほとんどの例では、<application android:name=".MyApplication" .... >は指定されていません。 MyApplication.onCreate()からAndroid Injectorを呼び出すにはApplicationオブジェクトを使用する必要がありますが、デバッガからはMyApplicationオブジェクトが呼び出されることはありません。だから、私の活動はオブジェクトを注入できません。インスタントアプリケーションの基本機能のApplication.onCreate()が呼び出されなかった

ツールを使用してみました。別のアプリケーションオブジェクトを使用するように置き換えましたが、まだ運がありません(Separate manifest for instant app)。

助けてください。

+1

問題を示すサンプルアプリケーション(https://stackoverflow.com/help/mcve)でバグを報告し、ここに戻ってリンクできますか?それはすべてのために役立つだろう、ありがとう! https://issuetracker.google.com/issues/new?component=316045&template=1018787 –

答えて

0

(Android Architecture Components関連の)問題を引き起こしているGoogle開発者の助けを借りて、問題は解決されました。詳細はissue 65989760を参照してください。 - アクティビティのコンストラクタによってアプリケーションオブジェクトを取得できません。それはactivity.onCreate()で行う必要があります。 - 私は論理をKotlin varとして宣言してonCreate()に移動し、問題を修正しました。

override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState) 

    viewModel.orderHistoryLiveData.observe(this, Observer { 
     viewModel.listVisible.set(it?.isNotEmpty() ?: false) 
    }) 
} 
+0

あなたはあなたの答えを受け入れることができますか?その質問は答えられないものとしてマークされませんか? – Idolon

1

Android Studioのデバッガでは、アプリケーションのライフサイクルの早い段階で発生するいくつかのことを逃す可能性があります。

私は、onCreate()に何かを記録するMyApplicationを作成しようとしましたが、ログステートメントが表示されます。

+0

はい、Application.onCreate()が呼び出されましたが、何とか最新のAndroid Architectureコンポーネントの問題を使用しています。 ActivationLifecycleCallbacks()を登録しようとすると、activity.getApplication()はnull Applicationオブジェクトを返します。私は特定のアプリケーションクラスを使用して、それを試してみました。 – andude

関連する問題