簡體   English   中英

Android 4.2+ Activity.OnCreate 片段

[英]Android 4.2+ Activity.OnCreate Fragment

Google Play 開發者控制台多次顯示此錯誤,但我根本無法重現它。 此外,我無法理解,我做錯了什么。

java.lang.RuntimeException: 
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2340)
  at android.app.ActivityThread.handleLaunchActivity (ActivityThread.java:2390)
  at android.app.ActivityThread.handleRelaunchActivity (ActivityThread.java:4072)
  at android.app.ActivityThread.access$900 (ActivityThread.java:151)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:1270)
  at android.os.Handler.dispatchMessage (Handler.java:102)
  at android.os.Looper.loop (Looper.java:136)
  at android.app.ActivityThread.main (ActivityThread.java:5413)
  at java.lang.reflect.Method.invokeNative (Native Method)
  at java.lang.reflect.Method.invoke (Method.java:515)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:970)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:786)
  at dalvik.system.NativeStart.main (Native Method)
Caused by: android.app.Fragment$InstantiationException: 
  at android.app.Fragment.instantiate (Fragment.java:601)
  at android.app.FragmentState.instantiate (Fragment.java:98)
  at android.app.FragmentManagerImpl.restoreAllState (FragmentManager.java:1759)
  at android.app.Activity.onCreate (Activity.java:905)
  at ru.ytaxi40reg.taxi.RegistrationActivity.onCreate (RegistrationActivity.java:58)
  at android.app.Activity.performCreate (Activity.java:5258)
  at android.app.Instrumentation.callActivityOnCreate (Instrumentation.java:1099)
  at android.app.ActivityThread.performLaunchActivity (ActivityThread.java:2280)
Caused by: java.lang.InstantiationException: 
  at java.lang.Class.newInstanceImpl (Native Method)
  at java.lang.Class.newInstance (Class.java:1208)
  at android.app.Fragment.instantiate (Fragment.java:590)

是的,我看到 Android 無法實例化框架。 但我的應用程序根本不使用任何片段!

你能解釋一下我錯在哪里嗎? 提前致謝。

編輯:這是來自 RegistrationActivity.java 的第 58 行

...
56  @Override
57  public void onCreate(Bundle p1) {
58      super.onCreate(p1);
59      setContentView(R.layout.activity_registration);
60      // Other stuff
...

編輯 2gist.gitub.com 上的所有文件

看起來系統可以將錯誤的Bundle savedInstanceState作為Activity.OnCreate()方法的參數放在某些 android 設備上。

我的解決方法是用以下幾行替換 Activity 的onCreate()方法的開頭:

@Override
public void onCreate(Bundle p1) {

    try{
        super.onCreate(p1);
    }catch(android.app.Fragment.InstantiationException e){
        super.onCreate(null);

    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM