Android Studio3.2報AAPT2 error錯誤解決

之前編譯EasyPusher-Android版程序是沒問題的,最近又拿出來調試,發現編譯不過去了:
編譯報錯
針對AAPT2 error這個錯誤,網上給出的解決方案種類還是蠻多的,說的最多的是在gradle.properties中加入一行代碼:

android.enableAapt2=false

但這個在Android Studio3.2版本上無效,還有說找到layout文件夾下後綴爲.9png的圖片,刪掉,然而我這個項目沒有這個文件。但是看到build.gradle文件下有個畫紅線的行:
報錯說明
好像提到了版本不一致的問題,仔細覈查一下SDK的版本:
SDK版本
而幾個support包的版本也都是27的:
support包的版本
這個項目也沒有其他的Module,問題再一度陷入了僵局,只能嘗試刪除build目錄,清緩存:
清除緩存
雖然網上有這麼解決問題的,但是遺憾的是我這裏不行。沒辦法,這麼瞎試不能解決問題,只能靜下心自己分析日誌了:

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':app:processRtspDebugResources'.
	at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:100)
...
Caused by: org.gradle.tooling.BuildException: Failed to execute aapt

看日誌是這個processRtspDebugResources任務出現了異常,那麼就單獨執行這個任務,看其詳細日誌:
單獨執行任務
日誌如下:

:app:splitsDiscoveryTaskRtspDebug UP-TO-DATE
AGPBI: {"kind":"error","text":"error: resource android:attr/dialogCornerRadius not found.","sources":[{"file":"F:\\AndroidStudio-SDK\\.gradle\\caches\\transforms-1\\files-1.1\\appcompat-v7-28.0.0.aar\\25460ff3889b39e0bda8a23e830d00bc\\res\\values-v28\\values-v28.xml","position":{"startLine":8,"startColumn":4,"startOffset":447,"endLine":11,"endColumn":12,"endOffset":684}}],"original":"","tool":"AAPT"}
AGPBI: {"kind":"error","text":"error: resource android:attr/dialogCornerRadius not found.","sources":[{"file":"E:\\AndroidWorkSpace\\EasyPusher-master\\app\\build\\intermediates\\incremental\\mergeRtspDebugResources\\merged.dir\\values-v28\\values-v28.xml","position":{"startLine":10}}],"original":"","tool":"AAPT"}
AGPBI: {"kind":"error","text":"error: resource android:attr/fontVariationSettings not found.","sources":[{"file":"F:\\AndroidStudio-SDK\\.gradle\\caches\\transforms-1\\files-1.1\\appcompat-v7-28.0.0.aar\\25460ff3889b39e0bda8a23e830d00bc\\res\\values\\values.xml","position":{"startLine":1303,"startColumn":4,"startOffset":70911,"endColumn":68,"endOffset":70975}}],"original":"","tool":"AAPT"}
AGPBI: {"kind":"error","text":"error: resource android:attr/ttcIndex not found.","sources":[{"file":"F:\\AndroidStudio-SDK\\.gradle\\caches\\transforms-1\\files-1.1\\appcompat-v7-28.0.0.aar\\25460ff3889b39e0bda8a23e830d00bc\\res\\values\\values.xml","position":{"startLine":1303,"startColumn":4,"startOffset":70911,"endColumn":68,"endOffset":70975}}],"original":"","tool":"AAPT"}
E:\AndroidWorkSpace\EasyPusher-master\app\build\intermediates\incremental\mergeRtspDebugResources\merged.dir\values-v28\values-v28.xml:7: error: resource android:attr/dialogCornerRadius not found.
...
Caused by: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details

仔細分析發現日誌裏面有appcompat-v7-28.0.0.aar內容,爲什麼會用到appcompat-v7-28.0.0呢?明明指定的是appcompat-v7:27.1.1,再仔細檢查gradle.properties文件:
引入最新版本
這有個用最新版本的包,這個裏面肯定用到了compileSdkVersion 28版本,趕緊改成一個指定的版本:
更改版本號
改後還是報錯呢?原來constraint-layout包也沒有指定版本:
constraint-layout版本
把+改成1.1.2版本:
指定1.1.2版本
再編譯就不報錯了,項目不能總用最新版本的SDK來重新編譯啊。看來指定對應包的版本是多麼的重要!要不過一段時間編譯出錯都不知道怎麼回事。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章