[異常專欄]AAPT2error:checklogsfordetails解決方法(轉(zhuǎn)載)

轉(zhuǎn)載地址http://blog.sina.com.cn/s/blog_5de73d0b0102yffd.html

AAPT 是全稱是 Android Asset Packaging Tool,它是構(gòu)建 App,甚至是構(gòu)建 Android 系統(tǒng)都必不可少的一個工具。它的作用是將所有資源文件壓縮打包到Android APK 當(dāng)中。我們在 Android SDK 目錄下可以找到它。

AAPT2 是 AAPT 的全新版本,從 Android Studio 3.0 開始,它被作為默認(rèn)的資源打包工具。

在開發(fā) App 的時候,有時候會遇到 AAPT2 error,一般如下:

Caused by: com.android.builder.internal.aapt.v2.Aapt2Exception: AAPT2 error: check logs for details
 at com.android.builder.png.AaptProcess$NotifierProcessOutput.handleOutput(AaptProcess.
 at com.android.builder.png.AaptProcess$NotifierProcessOutput.err(AaptProcess.
 at com.android.builder.png.AaptProcess$ProcessOutputFacade.err(AaptProcess.
 at com.android.utils.GrabProcessOutput$1.run(GrabProcessOutput.

網(wǎng)上很多人說,可以禁用 AAPT2 以解決該錯誤,具體做法是:在 gradle.properties 文件中,增加一行 “android.enableAapt2=false”。

但是,Android Studio 會提示你,你不應(yīng)該禁用 AAPT2,相反,無論如何你都應(yīng)該使用 AAPT2:

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

我們看看如何在不禁用 AAPT2 的情況下解決這些錯誤。

首先,AAPT2 是打包資源文件的工具,如果 AAPT2 報(bào)錯了,那么可以肯定是資源文件有問題(且不論AAPT2內(nèi)部錯誤)。

構(gòu)建 App 的時候,打開 Build 窗口,點(diǎn)擊 “Toggle View” 切換到文本輸出。


image

切換后如下圖所示:


image

在這種視圖下,可以看清楚 gradle 的執(zhí)行輸出。通過 仔細(xì)翻閱 這些輸出內(nèi)容,我們可以分析出錯誤原因:
image

上述輸出內(nèi)容說明:
1)發(fā)生錯誤的文件是 bedit_activity.xml;
2)錯誤原因是 android:background 屬性值不被兼容,當(dāng)然有時候經(jīng)常是xml屬性填寫錯誤導(dǎo)致AAPT2的ERROR。

我們打開文件看一下:


image

這里很明顯就看出問題了, 就是顏色值填寫錯了,多一個“#”號,修正之后,重新 build 一下,問題解決。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容