之前执行代码一直没有问题,打debug包也不会报错,然后昨天上线打正式包的时候,突然就报了一个匪夷所思的问题
Lint found fatal errors while assembling a release target.
To proceed, either fix the issues identified by lint, or modify your build script as follows:
...
android {
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
}
}
大体翻译下是
在发布版本中找到了一个很严重的错误
你可以去解决这个在lint发现的问题,或者修改生成脚本
android {
lintOptions {
checkReleaseBuilds false
// Or, if you prefer, you can continue to check for errors in release builds,
// but continue the build even when errors are found:
abortOnError false
}
}
寻找原因
赶紧打开百度,把Lint found fatal errors while assembling a release target.搜索一遍,然后一水的把上面两句话加到项目里就解决了。
android studio都告诉你了,是个致命的错误,就这么忽略了,真的好吗?
辛亏我们有良好的提交代码的习惯,于是乎我在git上一个版本一个版本的打包,找到了开始出现这个异常的版本,发现在一段代码中有两行可以忽略的异常
这两句代码,是由于强行引用第三方arr文件下res目录下面控件造成的,原因是因为第三方id为btnSubmit和btnCancel的两个button和我们自己写的布局文件id相同的两个TextView一致,编辑器以为你强行引用错误了,所以在打包release时报错
解决方案
告诉编辑器,这里有代码是错误的view检测
再次打包,就成功了!
思考
其实这个问题就是因为代码编写习惯不良好造成的
所以要:
1:代码命名要规范
2:及时检测有红线的代码,不要因为可以编译过去,就无视
3:有时候这个问题会指出错误在哪,可以通过编辑器报出的错误信息去解决