Android Studio AAPT2 error: check logs for details

一般错误为:

com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details

AAPT 是全称是 Android Asset Packaging Tool,它是构建 App,甚至是构建 Android 系统都必不可少的一个工具。它的作用是将所有资源文件压缩打包到Android APK 当中。我们在 Android SDK 目录下可以找到它。

AAPT2 是 AAPT 的全新版本,从 Android Studio 3.0 开始,它被作为默认的资源打包工具。

有是人说出现这个是因为gradle的存储路径中有中文,不过我的没有也报错的。

一般的解决做法是在gradle.properties文件中添加android.enableAapt2=false,这样可以编译通过,但是AS会给出下面的警告提示:

The option 'android.enableAapt2' isdeprecated and should not be used anymore.
Use 'android.enableAapt2=true' to removethis warning.
It will be removed at the end of 2018..

意思是这个东西已经弃用了,它将在2018年底被移除,建议你使用’android.enableAapt2=true’来移除警告。。。这下郁闷了,你要设置为false, 它反而要你设置为true。。。而且置为false的话,到年底的时候新版本可能不支持了。。。所以最好的解决方法,还是要查看详细的错误日志找到出错的对应资源改掉。

例如,我在使用的时候,报的具体错误为:

style attribute @android:attr/windowEnterAnimation not found

对应的资源文件为:

  

这个是在一个styles.xml当中的,这里需要把@android:windowEnterAnimation中的@符号去掉就好了,可能是新的版本中不支持这样写了,改为:

  

同时要找出工程所有的这样写法的style资源文件,将@符号都去掉。但是有一个地方是通过下面方式引用的上面的style, 怎么改都不行:


这样总是报错,最后没办法,改成下面这样,不引用了

<item name="android:windowAnimationStyle">@nullitem>

总之是出错的地方,能改的都改掉,但是有时候我们引用的是第三方的远程依赖库,这时如果报AAPT2错误的话,就麻烦了。。。因为你改不了,只能android.enableAapt2=false了,但这又不是长久方法,无解了。。。只能等Google给解释了

你可能感兴趣的:(android-studio,Android,Studio异常问题)