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。