错误:避免片段中的非默认构造函数:使用默认构造函数加上Fragment #setArguments(Bundle)而不是[ValidFragment]

时间:2015-06-04 08:12:15

标签: android android-fragments apk release default-constructor

我有一个名为Fragment_scheduled_newdetail的片段,以下是我在启动时传递给此片段的构造函数,我收到以下错误:

  

错误:错误:避免片段中的非默认构造函数:使用默认构造函数加上Fragment #setArguments(Bundle)而不是[ValidFragment]

这似乎只发生在Android Studio中(我从Eclipse移植这个项目,在Eclipse中没有问题)

当我尝试以release模式

创建应用时
public Fragment_scheduled_newdetail(BlockInfo blockToDisplayT) {
    super();
    this.blockToDisplay = blockToDisplay;
}

enter image description here

如果我以debug模式生成APK,则可以正常使用。 (release模式将失败) enter image description here

2 个答案:

答案 0 :(得分:2)

我知道答案已被接受,但对于那些找到最简单方法来避免这种情况的人来说。所以试试这个,它可以帮助我:

android {
    lintOptions {
        checkReleaseBuilds false
    }
}

只需在你的build.gradle文件中写下这个,然后同步项目并尝试重新签名apk。

答案 1 :(得分:1)

这是Android Studio强有力的建议。原因是“在重新实例化片段时不会调用构造函数”。而是setArguments(Bundle)会。这是根据Google网页@ Fragment。 你有Bundle传递的代码吗?

在Android框架中,重置了onCreate和onCreateView等覆盖方法,而不是构造函数,例如当用户更改方向时。