最近Android Studio 3.4发布了,于是马上更新了下,但打release包时居然报错了
Reading library jar [/Users/fir/Documents/android-sdk-macosx/platforms/android-28/option
al/android.test.runner.jar]
Reading library directory [/Users/fir/Documents/work/graan-client-andorid/app/libs]
Warning: Exception while processing task java.io.IOException: Can't read [/Users/fir/Doc
uments/work/graan-client-andorid/app/libs] (No such file or directory: /Users/fir/Docume
nts/work/graan-client-andorid/app/libs)
Thread(Tasks limiter_4): destruction
Task :app:transformClassesAndResourcesWithProguardForRelease FAILED
FAILURE: Build failed with an exception.
看错误信息No such file or directory: /Users/fir/Docume nts/work/graan-client-andorid/app/libs
说我没有libs文件夹,我看了下有啊,并且以前打包也不会有类似提示,于是google官网看了下Android Studio 3.4更新日志,说默认开启R8混淆打包,可参考(https://blog.csdn.net/jamin0107/article/details/81123154
),google官方如下:
然后以为是开启了R8的原因,于是在gradle.properties
中禁用R8
# Disables R8 for Android Library modules only.
android.enableR8.libraries = false
# Disables R8 for all modules.
android.enableR8 = false
然后继续打包,结果依然报上面的错。
于是就想肯定是跟混淆打包有关系了,错误提示说没有libs,然后自己有libs文件夹,但是里面没任何jar包,然后就想是不是因为libs里没有jar包导致,于是直接把libs文件夹删除了,重新打包,不幸的是依旧报错。。。
又想了想,可能是proguard文件有啥问题吧,于是找到自己的混淆文件,搜了下libs,然后发现居然加着这样一句话-libraryjars libs
,这是避免jar包被混淆的,然后恍然大悟,我libs里根本没东西,然后还不让混淆libs里的东西,当然找不到了,于是赶紧删掉这句话,再次打包,果然成功了,大费周折一番终于找到了问题的关键☺
总结
遇到类似问题一定要沉下心来看错误日志,不要嫌一堆log日志心烦,根据错误查找一定会解决问题的。特此记录下来,希望能帮到别人解决类似问题,大家共勉。