2017-08-08 113 views
0

我將我的Launcher Activity從Java轉換爲Kotlin,並且在onCreate()中發生崩潰,我不明白它爲什麼會崩潰。onCreate從Java轉換到Kotlin後崩潰

的Java:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
super.onCreate(savedInstanceState); 

科特林:

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

調用堆棧:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.a.b.c/com.a.b.c.Authentication.AuthenticationActivity}: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter savedInstanceState 
                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 
                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                     at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                     at android.os.Handler.dispatchMessage(Handler.java:102) 
                     at android.os.Looper.loop(Looper.java:148) 
                     at android.app.ActivityThread.main(ActivityThread.java:5417) 
                     at java.lang.reflect.Method.invoke(Native Method) 
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                    Caused by: java.lang.IllegalArgumentException: Parameter specified as non-null is null: method kotlin.jvm.internal.Intrinsics.checkParameterIsNotNull, parameter savedInstanceState 
                     at com.a.b.c.Activity.AppLifecycleTracker.onActivityCreated(AppLifecycleTracker.kt) 
                     at android.app.Application.dispatchActivityCreated(Application.java:195) 
                     at android.app.Activity.onCreate(Activity.java:922) 
                     at android.support.v4.app.FragmentActivity.onCreate(FragmentActivity.java:277) 
                     at android.support.v7.app.AppCompatActivity.onCreate(AppCompatActivity.java:85) 
                     at com.a.b.c.Authentication.AuthenticationActivity.onCreate(AuthenticationActivity.kt:147) 
                     at android.app.Activity.performCreate(Activity.java:6251) 
                     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
                     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
                     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
                     at android.app.ActivityThread.-wrap11(ActivityThread.java)  
                     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
                     at android.os.Handler.dispatchMessage(Handler.java:102)  
                     at android.os.Looper.loop(Looper.java:148)  
                     at android.app.ActivityThread.main(ActivityThread.java:5417)  
                     at java.lang.reflect.Method.invoke(Native Method)  
                     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
                     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
+0

你的onCreate()還有什麼嗎? – creativecreatorormaybenot

+0

活動的名稱是什麼? – Bob

+0

AuthenticationActivity.kt和清單文件有這個條目:<活動 機器人:名字= 「Authentication.AuthenticationActivity。」 機器人:configChanges = 「keyboardHidden |方向|屏幕尺寸| uiMode」 機器人:screenOrientation = 「sensorPortrait」 機器人: theme =「@ style/AppTheme.Simple」 tools:ignore =「InnerclassSeparator」> Harish

回答

2

貌似方法onActivityCreatedAppLifecycleTracker有一個參數savedInstanceState: Bundle,這應該是savedInstanceState: Bundle?,因爲不一定有保存的狀態可用在活動創建上,這意味着參數值可以是null。 Kotlin檢查確認null safety

崩潰似乎與活動本身的轉換無關。

+0

Facepalm :)我沒有覆蓋AppLifecycleTracker在別的地方,我完全忘了這一點。現在它的工作很好,謝謝。 – Harish