1. 程式人生 > 實用技巧 >【問題筆記】Android Studio執行或打包時報錯:Some file crunching failed, see logs for details

【問題筆記】Android Studio執行或打包時報錯:Some file crunching failed, see logs for details

今天接到一個需求,要我打個包,心想多簡單個事兒,興沖沖的點開Android Studio,開啟擱置了兩個多月的專案,就在修改完程式碼準備一把梭(Run ' app ')的時候,控制檯在編譯打包的時候報出了這樣一個錯誤:

一陣莫名其妙。多長時間沒動過了,之前還是好的,現在咋報錯了?難道程式碼也有保質期麼?

點進去看下詳細報錯,全是如下報錯“ERROR: Unable to open PNG file”,這個。。。從來沒見過~~

二話不說,直接開啟baidu,都是同樣的原因+解決方案,文章內容完全一樣,基本都是我轉你,你轉他。。。

  • 原因1:報錯的圖片檔案不是PNG檔案

    • 比如原本是一個jpg格式的圖片,強行修改副檔名,改成PNG格式了

    • 解決方案:

      • 在build.gradle檔案中的android標籤增加如下內容:
       aaptOptions {
           cruncherEnabled = false
           useNewCruncher = false
       }
      
  • 原因2:.9的圖片沒有設定邊距

    • 解決方案:
      • 通過AS自帶的工具設定1px的邊距即可

找到這兩個方案,仔細檢查我的專案,發現提示“ERROR: Unable to open PNG file”的檔案有上百個,肯定不是因為手動修改了圖片副檔名導致的,況且即便手動修改了jpg為png,也基本不會出錯,只是沒有了透明效果而已,所以首先排除了原因1,但是死馬當作活馬醫,索性試一下,果然沒有效果;再看原因2,報錯的提示資訊跟我的都不一樣,可能也不是這個原因導致的,因為報錯資訊裡邊沒有特定的指出是哪個.9的檔案,我也保證,近期沒有新增或修改.9的圖片到專案中,所以原因2也排除。

就在將近崩潰之際,又再一次看了下build資訊,看到了這個,整齊的中文字型

突然回憶起來,之前在使用AndroidStudio build其他專案的時候,發現如果productFlavors中含有中文的話,gradle build時,控制檯會顯示亂碼,就單獨花了一段時間解決亂碼這個問題,記得修改過jvm啟動引數,加了下面這句話,

-Dfile.encoding=UTF-8

會不會是中文編碼導致的問題呢?

再試一下,Help→Edit Custom VM Options選項,開啟jvm配置檔案,把這句程式碼註釋掉,再run一次。

結果是讓人興奮的!build成功了,但是又亂碼了~

顯然,修改亂碼的方案是有問題的,

但也請大家注意,productFlavors中的名字,也千萬不要使用中文。

雖然亂碼,但是讓我解決了一個阻斷性問題,亂碼的問題後續再解決吧。