关于Android Studio 3.0以后出现的com.android.tools.aapt2.Aapt2Exception: AAPT2 error

      自从更新到最新版的3.1以后,编译器就没省心过。。。今天通过Build-Generate Signed apk...打包签名apk时,提示

Error:Execution failed for task ':app:mergeDebugResources'.>

Error: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2error: check logs for details

然后底下一大片红色错误。。。眼都看瞎!

    自行百度了一下,看了很多人的博文,发现大家发布的几乎都是以下两种方法:

一、

    android.enableAapt2=false

在工程里找到gradle.properties,如果没有,那就新建一个,然后加入 android.enableAapt2 = false;

我试了以下,发现Android Studio会提示说,aapt2 将在2018年不再使用,提示建议禁止再用这个配置参数。
而且,我再次签名打包时,发现还是会报这个错误,也就是以上方法失效;

二、 找到并删除 .9png的图片

    然后第二种方法,就是查找工程里的.9png的图片,并删除。。。

然后我发现我工程里并没有9妹的图,尴尬。。。

   

    至今不知道是什么原因,导致这个问题的,尝试了很多方法,也看了很多stackoverflow上,外国小哥的各种方法,都是无效。无意中看到一些外国小哥说,只能等待官方提供更新去解决这个问题,然后看到有人说,Android Studio 有3.2试用版了。于是我果断更新了一下Studio 的版本 ,在build.gradle的dependencies,由原来的3.1.2改成3.2.0-alpha13,如下:

    dependencies {
//        classpath 'com.android.tools.build:gradle:3.1.2'
        classpath'com.android.tools.build:gradle:3.2.0-alpha13'
        // NOTE: Do not place your application dependencies here; they belong
        // in the individual module build.gradle files
    }

    然后Studio 会提示Gradle version的最低版本是4.6,选择更新一下, 从4.4更新到4.6。

    接着我再打包签名一次,它又提示新的错误,但这次是提示的是对于gradle配置的修改,于是我加上了它的建议:

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
    }
}
在app包里的build里,找到android{},并在里面添加lintOptions, 分别添加checkReleaseBuilds和abortonError两个限制操作的配置,并都设置为false,然后再次打包签名apk,完美执行。


你可能感兴趣的:(Android开发)