2017-09-19 2 views
1

Grundsätzlich habe ich ein Projekt in Kotlin und Dagger2 geschrieben. Ich versuche ein Basisfeature zu implementieren. Die meisten Beispiele geben <application android:name=".MyApplication" .... > nicht an. Ich muss ein Application-Objekt verwenden, um Android Injector von MyApplication.onCreate() aufzurufen, aber von meinem Debugger sehe ich nie, dass das MyApplication-Objekt aufgerufen wird. Also, meine Aktivität kann kein Objekt injizieren.instant app base feature Application.onCreate() nie aufgerufen

Ich habe versucht, mit Werkzeugen: ersetzen, um ein anderes Anwendungsobjekt zu verwenden, aber immer noch kein Glück (Separate manifest for instant app).

Bitte helfen.

+1

Können Sie einen Fehler mit einer Beispielanwendung (https://stackoverflow.com/help/mcve) einreichen, die Ihr Problem demonstriert und dann hier zurück verlinkt? Es wäre hilfreich für alle, danke! https://issuetracker.google.com/issues/new?component=316045&template=1018787 –

Antwort

0

Mit der Hilfe von Google dev in Root verursacht das (Android Architecture Components bezogenen) Problem, das Problem ist jetzt gelöst. Weitere Details finden Sie unter issue 65989760. - Das Anwendungsobjekt kann nicht vom Konstruktor einer Aktivität abgerufen werden. Dies muss mit activity.onCreate() geschehen. - Also habe ich meine Logik als Kotlin-Variable zu onCreate() verschoben und das Problem behoben.

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

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

Können Sie bitte Ihre Antwort akzeptieren, damit die Frage nicht als unbeantwortet markiert wird? – Idolon

1

Der Android Studio-Debugger kann einige Dinge vermissen, die zu einem frühen Zeitpunkt des Anwendungslebenszyklus auftreten. Wir arbeiten daran, das Problem zu beheben.

Ich habe versucht, eine MyApplication zu erstellen, die nur etwas in onCreate() anmeldet, und die Protokollanweisung erscheint.

+0

Ja, die Application.onCreate() wird aufgerufen, aber irgendwie verwenden wir das neueste Android-Architektur-Komponenten-Problem. Beim Versuch, ActivityLifecycleCallbacks() zu registrieren, gibt activity.getApplication() ein Null-Anwendungsobjekt zurück. Ich habe es mit und ohne spezielle Application-Klasse ausprobiert. – andude

Verwandte Themen