Error: Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) instead [ValidFragment]
Error: Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) instead [ValidFragment]
我有一个名为 Fragment_scheduled_newdetail
的片段,下面是我在启动时传递给这个片段的构造函数,我收到以下错误:
Error:Error: Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) instead [ValidFragment]
这似乎只在 Android Studio 中发生(我正在从 Eclipse 移植这个项目,在 Eclipse 中没有问题)
当我尝试在 release
模式下创建应用程序时
public Fragment_scheduled_newdetail(BlockInfo blockToDisplayT) {
super();
this.blockToDisplay = blockToDisplay;
}
如果我在 debug
模式下生成 APK,它可以正常工作。 (release
模式会失败)
这是 Android Studio 提出的强烈建议。原因是"constructors will not be called when the fragment is re-instantiated"。相反 setArguments(Bundle) 会。这是根据 Google 网页@ Fragment。
你有 Bundle 传递的代码吗?
在 Android 框架中,恢复了 onCreate 和 onCreateView 等重写方法,而不是构造函数,例如当用户改变方向时。
我知道答案已被接受,但对于找到最简单方法避免这种情况的其他人来说。所以试试这个,它帮助我:
android {
lintOptions {
checkReleaseBuilds false
}
}
只需将此写入您的 build.gradle 文件,然后同步项目并再次尝试制作已签名的 apk。
我有一个名为 Fragment_scheduled_newdetail
的片段,下面是我在启动时传递给这个片段的构造函数,我收到以下错误:
Error:Error: Avoid non-default constructors in fragments: use a default constructor plus Fragment#setArguments(Bundle) instead [ValidFragment]
这似乎只在 Android Studio 中发生(我正在从 Eclipse 移植这个项目,在 Eclipse 中没有问题)
当我尝试在 release
模式下创建应用程序时
public Fragment_scheduled_newdetail(BlockInfo blockToDisplayT) {
super();
this.blockToDisplay = blockToDisplay;
}
如果我在 debug
模式下生成 APK,它可以正常工作。 (release
模式会失败)
这是 Android Studio 提出的强烈建议。原因是"constructors will not be called when the fragment is re-instantiated"。相反 setArguments(Bundle) 会。这是根据 Google 网页@ Fragment。 你有 Bundle 传递的代码吗?
在 Android 框架中,恢复了 onCreate 和 onCreateView 等重写方法,而不是构造函数,例如当用户改变方向时。
我知道答案已被接受,但对于找到最简单方法避免这种情况的其他人来说。所以试试这个,它帮助我:
android {
lintOptions {
checkReleaseBuilds false
}
}
只需将此写入您的 build.gradle 文件,然后同步项目并再次尝试制作已签名的 apk。