Android 打包生成APK文件时报lintOptions配置错误

问题描述:

今天在原来得基础上优化了部分功能,想打包成apk文件安装到手机上运行一下,结果在打包时发生了异常。具体异常如下图所示:

翻译右边的错误:

Lint在组装释放目标时发现致命错误。

要继续下去,要么修复由lint识别的问题,要么修改您的构建脚本如下:

android {

lintOptions {

checkReleaseBuilds false

//或者,如果您愿意,您可以继续检查发布版本中的错误,

//但继续构建,即使发现错误:

abortOnError false

}

}

. .

这个提示已经相当的清楚了,但是我不太明白为什么会发生的这样的错误,我上一次打包也没有遇到这样的问题。而且我连着手机调试的时候,是可以正常的安装到手机上的,但是就在打包生成apk文件的时候报了这样的错误。

原因分析:

在分析原因前我们先来解释一下 lintOptions 配置到底是干了什么,其实很简单,这个配置可以配置很多东西,稍后会附在后面。lintOptions 配置,作用就是 协助我们发现项目中代码质量问题。代码的质量这个定义很广泛。总之,大家知道这个配置到底是干什么的。

下面是我从stackoverflow上面找到的关于lintOptions配置:

android {

    lintOptions {

        // true--关闭lint报告的分析进度

        quiet true

        // true--错误发生后停止gradle构建

        abortOnError false

        // true--只报告error

        ignoreWarnings true

        // true--忽略有错误的文件的全/绝对路径(默认是true)

        //absolutePaths true

        // true--检查所有问题点,包含其他默认关闭项

        checkAllWarnings true

        // true--所有warning当做error

        warningsAsErrors true

        // 关闭指定问题检查

        disable 'TypographyFractions','TypographyQuotes'

        // 打开指定问题检查

        enable 'RtlHardcoded','RtlCompat', 'RtlEnabled'

        // 仅检查指定问题

        check 'NewApi', 'InlinedApi'

        // true--error输出文件不包含源码行号

        noLines true

        // true--显示错误的所有发生位置,不截取

        showAll true

        // 回退lint设置(默认规则)

        lintConfig file("default-lint.xml")

        // true--生成txt格式报告(默认false)

        textReport true

        // 重定向输出;可以是文件或'stdout'

        textOutput 'stdout'

        // true--生成XML格式报告

        xmlReport false

        // 指定xml报告文档(默认lint-results.xml)

        xmlOutput file("lint-report.xml")

        // true--生成HTML报告(带问题解释,源码位置,等)

        htmlReport true

        // html报告可选路径(构建器默认是lint-results.html )

        htmlOutput file("lint-report.html")

        //  true--所有正式版构建执行规则生成崩溃的lint检查,如果有崩溃问题将停止构建

        checkReleaseBuilds true

        // 在发布版本编译时检查(即使不包含lint目标),指定问题的规则生成崩溃

        fatal 'NewApi', 'InlineApi'

        // 指定问题的规则生成错误

        error 'Wakelock', 'TextViewEdits'

        // 指定问题的规则生成警告

        warning 'ResourceAsColor'

        // 忽略指定问题的规则(同关闭检查)

        ignore 'TypographyQuotes'

    }

解决方案:

我们只需要在app目录下的build.gradle文件中增加如下配置:

lintOptions{

        checkReleaseBuilds false

        abortOnError false

    }

示例图如下:

再次重新编译,没有问题,通过了。

参考资料

关于lintOptions配置问题 lintOptions详细配置解释

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容