Android签名打包报错:Lint found fatal errors while assembling a release target.

1. Android签名打包报错:Lint found fatal errors while assembling a release target.

1.1. 问题

  Android项目打debug 包的时候没问题,但是在打release迭代测试版本时候无法打包。Lint found fatal errors while assembling a release target.
Android签名打包报错:Lint found fatal errors while assembling a release target._第1张图片

1.2. 问题解决方案

1.2.1. 忽略处理

android {
    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
}

  之后再次打包,确实不再报错了,但是总觉得不踏实,既然是发现了致命的错误(found fatal errors),总得知道检查到了什么错误吧!

1.2.2. 问题排查

  找到在项目目录下app/build/reports/lint-results-release-fatal.html 文件,这个文件就详细描述了release时lint检测到的比较严重的结果,我们可以用浏览器打开这个文件!
Android签名打包报错:Lint found fatal errors while assembling a release target._第2张图片
Android签名打包报错:Lint found fatal errors while assembling a release target._第3张图片

  当我将目标SDK更新到30+(即Android R或更高版本)时,当我想要定义PendingIntent时,我的PendingIntent.FLAG_UPDATE_CURRENT标志出现了一个lint警告Missing PendingIntent mutability flag。
  如果你让你的应用在安卓12上运行,那么有一个新的PendingIntent可变性标志。如果你不想让你的PendingIntent被改变,请使用:
(1)若想避免PendingIntent被改变,请使用

PendingIntent pendingIntent;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
        pendingIntent = PendingIntent.getActivity(this,
                0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE);

    }else {
        pendingIntent = PendingIntent.getActivity(this,
                0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

    }

(2)如果你想改变你的PendingIntent,使用以下代码:

PendingIntent pendingIntent;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
        pendingIntent = PendingIntent.getActivity(this,
                0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE);

    }else {
        pendingIntent = PendingIntent.getActivity(this,
                0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

    }
    }

1.3. 问题修复还原代码

Android签名打包报错:Lint found fatal errors while assembling a release target._第4张图片
  修复问题后注释以下代码

android {
    lintOptions {
        checkReleaseBuilds false
        abortOnError false
    }
}

Android签名打包报错:Lint found fatal errors while assembling a release target._第5张图片
  项目可以正常签名打包。

你可能感兴趣的:(Android异常,android)