【问题标题】:Unable to instantiate fragment - InstantiationException无法实例化片段 - InstantiationException
【发布时间】:2013-08-05 07:48:25
【问题描述】:

我在 Play 商店上发布了一个应用程序,我正在使用 ACRA 接收崩溃报告。 我收到了很多下面列出的这些崩溃报告,尽管我在很多设备上对应用程序进行了很多测试,但我以前从未见过。

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.app/com.example.app.MainActivity}: android.support.v4.app.Fragment$InstantiationException: Unable to instantiate fragment com.example.app.fragments.InfoDetailFragment$1: make sure class name exists, is public, and has an empty constructor that is public
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2355)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2391)
        at android.app.ActivityThread.access$600(ActivityThread.java:151)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1335)
        at android.os.Handler.dispatchMessage(Handler.java:99)
        at android.os.Looper.loop(Looper.java:155)
        at android.app.ActivityThread.main(ActivityThread.java:5520)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1029)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:796)
        at dalvik.system.NativeStart.main(Native Method)

它始终是片段“InfoDetailFragment”,就像我的所有片段一样,都是 BaseFragment 的子类。

public static InfoDetailFragment createInstance(String title) {
    InfoDetailFragment frag = new InfoDetailFragment();
    Bundle args = new Bundle();
    args.putString(ARGS_TITLE, title);
    frag.setArguments(args);
    return frag;
}

public InfoDetailFragment() {
    super("InfoDetailFragment");
}

我所有的片段都被实例化了,但错误只出现在这个片段上。有什么想法或提示吗?非常感谢

【问题讨论】:

  • 这是方向改变问题吗?stackoverflow.com/questions/8058809/…
  • 我在某些时候也是这么想的,但是我无法通过改变方向来重现这个错误。
  • 我也有同样的问题。正如其他人stackoverflow.com/questions/16464645/… 所建议的那样,我遇到问题的片段位于单独的类文件中,但我仍然有问题。您找到解决问题的方法了吗?
  • @Magnus,我添加了一个答案,如果它也解决了你的问题,请告诉我

标签: java android android-fragments


【解决方案1】:

跟进:我将我的支持库更新到 rev.18,这似乎已经解决了问题。

【讨论】:

    【解决方案2】:

    分享我的经验:

    添加空构造函数和/或 newInstance() 都不起作用。
    线索是找不到类,在我的 gradle 中

    defaultConfig {
            multiDexEnabled true
        }
    dependencies {
        compile 'com.google.android.gms:play-services:8.4.0'
        compile 'com.google.android.gms:play-services-gcm:8.4.0'
    }
    

    我关闭了 multiDexEnabled,而不是

    defaultConfig {
            //multiDexEnabled true
        }
    dependencies {
        //compile 'com.google.android.gms:play-services:8.4.0'
        compile 'com.google.android.gms:play-services-gcm:8.4.0'
        compile 'com.google.android.gms:play-services-location:8.4.0'
    }
    

    (Android Studio 1.5.1,Android API23)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-07
      • 1970-01-01
      • 1970-01-01
      • 2015-05-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多