网上找了很多关于运行错误Aapt2Exception的原因,走了不少弯路一致没有解决这个问题,查阅很久,不外乎这么两个:
1.图片或资源文件不合法,没有通过新版本的检测
2.gradle路径,项目路径或者SDK的路径中包含了中文
Android studio3.0.1的解决方案:
在gradle.properties中加入
android.enbaleAapt2=false
关闭资源文件的检测,可以绕过检测
更新3.1.1之后,上述方法失效,AS会强制开启enbaleAapt2
Android studio3.1.1的解决方案:
方案一:
build.gradle(Project)
把这一段"classpath'com.android.tools.build:gradle:3.1.1'" 的3.1.1改成3.0.0
此时再在gradle.properties中加入 android.enbaleAapt2=false 会生效,同样达到绕过检测的目的
方案二:
build.gradle(Project)
把这一段 "classpath'com.android.tools.build:gradle:3.1.1'" 的 3.1.1 改成 3.2.0-alpha09
如下 "classpath 'com.android.tools.build:gradle:3.2.0-alpha09'"
(2)接着在我们gradle.properties里面再次加上以下代码即可,别忘记Sync Now
android.useAapt2FromMaven=true
Android studio3.1.2之后的解决方案(终极版):
升级到最新版本的Android studio(3.1.2之后的版本都可以)
以作者的Android studio3.2.1为例
打开build.gradle(Project)
把项目中这一段 "classpath'com.android.tools.build:gradle:3.X.X'" 的 3.X.X改成 与当前新版本一致的3.2.1
Sync Now之后不再需要进行任何操作,官方已经修复了Aapt2的错误