AS打包出現app:transformClassesAndResourcesWithProguardForRelease錯誤

weixin_33912246發表於2018-10-12

今天打包專案的正式簽名APK出現以下錯誤,當時挺著急用的實在沒辦法就只能用測試apk湊合來對付一下了

Error:Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'.
> java.io.IOException: Please correct the above warnings first.

解決問題歷經千辛萬苦啊
出現這個問題首先看看是不是編譯

出問題了,畢竟使用的電腦配置不高卡得要死,所以又重新試了幾遍仍然是這個錯誤,還嘗試著重啟電腦來仍然不行,後面再催得緊~~我當時是崩潰的。。
然後請教萬能的 度娘,stackoverfolw上有人收是由於升級As後單元測試外掛未升級導致的,接下來就找同事沒有升級的去打包,不幸的是還是同樣的錯誤,同事告訴說是由於jar包衝突導致
當時專案急著要用,發過測試版就幹別的活兒了。此問題暫時放一放……
直到晚上回家,仍然想不通為啥出現這個問題,繼續嘗試。最後解決問題,出現問題的原因在這裡,啥都不說了,看下面的程式碼吧

 buildTypes {
        release {
            minifyEnabled true
            shrinkResources true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

原因分析: 
以下兩句是在看到一篇android效能優化的文章後新增的,目的是為了減小安裝包的大小,這樣做確實會去掉用不到的資原始檔達到減小安裝包的目的。

  • 在這裡開啟了混淆,但是未加入相應的混淆規則,所以在專案編譯時出錯了
minifyEnabled true
shrinkResources true

新增這樣的兩句出現的錯誤就是前文那樣,經過測試,一定會出現的,如有不同意見請給我留言,敬請指教。

修改方法 
修改後如下:

buildTypes {
        release {
            minifyEnabled false
            shrinkResources false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

修改後,重新打包即可,大功告成。

相關文章