??這兩天遇到了一個AS編譯過程中報Exception的問題:
...//省略
:app:mergeDebugResources
Exception in thread "png-cruncher_5" java.lang.RuntimeException: Timed out while waiting for slave aapt process, try setting environment variable SLAVE_AAPT_TIMEOUT to a value bigger than 5 seconds
at com.android.builder.png.AaptProcess.waitForReady(AaptProcess.java:104)
at com.android.builder.png.QueuedCruncher$1.creation(QueuedCruncher.java:107)
at com.android.builder.tasks.WorkQueue.run(WorkQueue.java:206)
at java.lang.Thread.run(Thread.java:745)
Exception in thread "png-cruncher_10" java.lang.RuntimeException: Timed out while waiting for slave aapt process, try setting environment variable SLAVE_AAPT_TIMEOUT to a value bigger than 5 seconds
at com.android.builder.png.AaptProcess.waitForReady(AaptProcess.java:104)
at com.android.builder.png.QueuedCruncher$1.creation(QueuedCruncher.java:107)
at com.android.builder.tasks.WorkQueue.run(WorkQueue.java:206)
at java.lang.Thread.run(Thread.java:745)
...//省略
??解決這個問題花了我一天時間居灯,網(wǎng)上根本找不到解決方案,按照網(wǎng)上提示的設置環(huán)境變量“SLAVE_AAPT_TIMEOUT”规哲,延長超時的時間剑梳、更改build-tools的版本、更新build-tools抒线、升級AS、關掉殺毒軟件都不管用金吗。
??最后只好結合編譯時的日志進行分析十兢,肯定是在編譯時打包資源時出了問題趣竣,這就涉及到aapt打包資源的問題,所以最終還是懷疑到了build-tools上面旱物,因為aapt.exe這個文件就在每個版本的build-tools文件夾下遥缕,但之前更新過build-tools、更改過build-tools的版本并不管用宵呛,再結合網(wǎng)上提示有可能是殺毒軟件的問題单匣,想到是不是殺毒軟件將build-tools中的文件標記位病毒導致的,最后找同事要了一份他電腦上的build-tools宝穗,對比發(fā)現(xiàn)里面的很多文件內(nèi)容的確不同户秤,拷貝過來,重新編譯逮矛,成功<拧!须鼎!
??這是一個很簡單的問題鲸伴,可解決這個問題的方式出了問題,導致浪費了大把時間晋控,如果早先就自己分析汞窗,而不是直接在網(wǎng)上去找答案,可能解決起來會更快赡译。但也不盡然仲吏,對于這種問題排除法、調(diào)試蝌焚、二分法這些都不管用裹唆,只能一個一個地去試,并且根據(jù)自己的經(jīng)驗分析判斷才能夠快速解決综看。