我有一个名为Fragment_scheduled_newdetail
的片段,以下是我在启动时传递给此片段的构造函数,我收到以下错误:
错误:错误:避免片段中的非默认构造函数:使用默认构造函数加上Fragment #setArguments(Bundle)而不是[ValidFragment]
这似乎只发生在Android Studio中(我从Eclipse移植这个项目,在Eclipse中没有问题)
当我尝试以release
模式
public Fragment_scheduled_newdetail(BlockInfo blockToDisplayT) {
super();
this.blockToDisplay = blockToDisplay;
}
如果我以debug
模式生成APK,则可以正常使用。 (release
模式将失败)
答案 0 :(得分:2)
我知道答案已被接受,但对于那些找到最简单方法来避免这种情况的人来说。所以试试这个,它可以帮助我:
android {
lintOptions {
checkReleaseBuilds false
}
}
只需在你的build.gradle文件中写下这个,然后同步项目并尝试重新签名apk。
答案 1 :(得分:1)
这是Android Studio强有力的建议。原因是“在重新实例化片段时不会调用构造函数”。而是setArguments(Bundle)会。这是根据Google网页@ Fragment。 你有Bundle传递的代码吗?
在Android框架中,重置了onCreate和onCreateView等覆盖方法,而不是构造函数,例如当用户更改方向时。