Android版本更新踩坑,Android Studio 3.0升级后踩到的坑
最近升級了Android Studio 3.1.2,還沒沉浸在歡樂中,就當頭一棒,更新項目沒事,但是運行項目就報錯。錯誤信息如下:
Caused by: org.gradle.tooling.BuildException: Warnings found during shrinking, please use -dontwarn or -ignorewarnings to suppress them.
具體詳情是:
錯誤
對于我這種英文戰五渣,費老鼻子勁了,各種翻譯,還是沒有發現問題的關鍵。但是問題還是要解決,不然項目都run不起了。
然后各種嘗試,突然想起我的app下的build.gradle文檔配置信息可能有問題,于是查看該文件,發現是這樣寫的:
buildTypes {
debug {
// 顯示Log
buildConfigField "boolean","LOG_DEBUG","true"
versionNameSuffix "-debug"
minifyEnabled true //混淆打包
shrinkResources true // 刪除無效資源
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-ules.pro'
}
...
}
我靈機一動,覺得可能是shrinkResources true這個導致的(沒辦法,以前Android Studio 2.3.2打包的時候遇到過這個坑),于是,我把shrinkResources 的值改成了false,再run,發現log顯示:
Warnings found during shrinking, please use -dontwarn or -ignorewarnings to suppress them.
果然,報錯不一樣了,又是英文,老辦法,翻譯唄,猜想是混淆打包的鍋。翻譯出來是:
在收縮期間發現的警告,請使用DOWTWARN或-ICONRIONG警告來抑制它們。
what?什么玩意兒,不過-dontwarn or -ignorewarnings 都是混淆打包才有的專業術語,于是,修改minifyEnabled false,最后如下:
buildTypes {
debug {
// 顯示Log
buildConfigField "boolean","LOG_DEBUG","true"
versionNameSuffix "-debug"
minifyEnabled false
shrinkResources false
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-ules.pro'
}
...
}
再運行,debug版本運行成功!
不過雖然解決了,但是Android Studio 2.3.2 也是這樣配置的,并沒有出問題呀?而且minifyEnabled 和shrinkResources 的release版本值都是true,debug版本出問題,我擔心release版本打包后也會出問題,于是,打包嘗試了下,發現,居然沒出問題,成功打包,什么情況?并且能運行起來,簡單看了下,也沒報錯。
這么邪門的3.1.2版本,我已經無語了,這里記錄下。
最后,經過不懈努力,終于,我還是找到了解決辦法(我就是想使用混淆代碼!!!),代碼如下:
buildTypes {
debug {
// 顯示Log
buildConfigField "boolean","LOG_DEBUG","true"
versionNameSuffix "-debug"
minifyEnabled true
shrinkResources true
useProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'),'proguard-ules.pro'
}
...
}
沒錯,追加一行useProguard true這個設置,報錯就奇跡般沒了,沒了,沒了!!!
查找資料,useProguard true是開啟混淆的意思,這樣,程序就好了。
好了,完美解決,結束!
總結
以上是生活随笔為你收集整理的Android版本更新踩坑,Android Studio 3.0升级后踩到的坑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: win8能开发android的sdk么,
- 下一篇: n9009 Android5.0内核,三