1. 程式人生 > >Android編譯時出現Process 'command 'build-tools\27.0.3\aapt.exe'' finished with non-zero exit value 1報錯

Android編譯時出現Process 'command 'build-tools\27.0.3\aapt.exe'' finished with non-zero exit value 1報錯

首先說下自己的解決方案: 1,電腦當時執行的記憶體不夠,導致了這個問題 2,這個才是重點 AndroidManifest.xml資原始檔中引用有錯誤(搜狗渠道的資源配置引用了愛遊戲渠道的資源配置)刪除錯誤的資源配置就可以了,資源報錯的方式是通過以下一篇部落格找到的

轉發如下: 昨天在開發一個專案時,在Android Studio中編譯時,gradle編譯之後出現瞭如下錯誤:

1Error:Execution failed for task ':samples-simplevideowidget:processDebugResources'. 
> com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'E:\Android\SDK\build-tools\23.0.1\aapt.exe'' finished with non-zero exit value 1
2

首先看到這個錯誤之後,我先檢查了下Android Studio專案中資源,程式碼有無提示的錯誤,經過確認沒有之後,將錯誤資訊在Google中搜索。

經過搜尋之後,在StackOverflow和CSDN上發現有很多人遇到了這個錯誤,不過解決方法卻各不相同。有的建議Clean然後Rebuild,有的建議修改使用記憶體,有的說是程式碼問題,也有的說是資源問題,比如本來是jpg圖片,檔案字尾卻是png也會導致問題…

我按照以上方案一一檢查,還是未能解決,於是只能自己動手排查原因了!

  1. 定位錯誤點

在專案root路徑,實際上是控制檯Terminal下也可以輸入命令,命令列輸入:

gradlew processDebugResources --debug

1 gradlew processDebugResources --debug

然後專案開始編譯,螢幕上輸出大量編譯Log資訊,從Log中找到了輸出的出錯資訊:

1org.gradle.process.internal.DefaultExecHandle] Changing state to: FAILED
2,org.gradle.process.internal.DefaultExecHandle] Process ‘command ‘E:\Android\SDK\build-tools\23.0.1\aapt.exe’’ finished with exit value 1 (state: FAILED)
3,org.gradle.api.Project] Unknown source file : ERROR: In ListItemLinearLayout, unable to find attribute singleLine
4,org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ‘:samples-simplevideowidget:processDebugResources’
5,E] [class org.gradle.TaskExecutionLogger] :samples-simplevideowidget:processDebugResources FAILED
6

從上述Log資訊,我們可知出錯點是ERROR: In ListItemLinearLayout, unable to find attribute singleLine,那麼肯定是attrs檔案的ListItemLinearLayoutstyleable出錯了。 2. 錯誤原因

經過上述分析,我們進入attrs.xml檔案,找到ListItemLinearLayout,如下所示: 1, 2, 3,

可以看出singleLine沒有對應的format屬性,確定singleLine沒有在程式碼中使用之後,將此屬性刪掉。

重新編譯之後,問題解決。