如何忽略"避免片段中的非默认构造函数"错误?

use*_*856 25 android

我在尝试生成已签名的APK时遇到此错误.问题是,我的应用程序能够在我的设备上正常运行和调试.我不知道为什么当我尝试生成APK时,出现了这个错误.如何忽略此错误并生成签名的APK?我正在使用Android Studio 1.2.1.1 for Mac.

use*_*856 79

找到了解决方案.更简单的方法是将这些添加到gradle中:

 android {
          lintOptions {
              checkReleaseBuilds false
          }
      }
Run Code Online (Sandbox Code Playgroud)

或者另一种方法是添加 @SuppressLint("ValidFragment")

  • 您不应该在片段中使用非默认构造函数.您可以添加静态方法,例如getInstance(您的参数...)并从那里创建新片段并将这些参数设置为您的片段 (4认同)
  • 所以,如果汽车的发动机灯闪烁,你还要拆下灯泡来解决它吗? (3认同)

最白目*_*最白目 20

lint如果你仍然想要利用它的优势,完全关闭并不是一个好的解决方案.如果有人遇到这个问题,我发现关闭特定错误只是一个更优雅的解决方案:

android {
    lintOptions {
        disable 'ValidFragment'
    }
}
Run Code Online (Sandbox Code Playgroud)


Die*_*ano 9

它在Fragment的契约中:" 每个片段必须有一个空构造函数,因此可以在恢复其活动状态时进行实例化.强烈建议子类没有其他带参数的构造函数,因为这些构造函数在调用时不会被调用.片段被重新实例化;相反,参数可以由调用者使用setArguments(Bundle)提供,稍后由片段使用getArguments()检索. "