android studio 混淆打包apk后volley无法访问网络
16lz
2021-01-26
原文地址:https://www.xugj520.cn/archives/volley.html
一、问题
最近在开发升级Android版APP时,打包APK后出现无法访问网络的错误:
二、解决方案:
先说解决方案,再说解决过程。方便大家快速解决问题。开发的时间,你懂得~~~
在gradle-wrapper.properties文件中修改:
distributionUrl=https\://services.gradle.org/distributions/gradle-4.6-all.zip
在build.gradle中修改:
dependencies { classpath 'com.android.tools.build:gradle:3.2.0'}
注意:gradle版本和插件版本需要对应
三、解决思路
在开发和打包的时候都没有问题,打包后出现。说明业务代码没有问题,可能是打包参数出现问题。
排查问题发现minifyEnabled true
参数;当值设置为true时,APK没有问题。一开始认为是混淆规则中的volley被混淆无法找到的原因,添加了volley的:
# volley-keep class com.android.volley.** {*;}-keep class com.android.volley.toolbox.** {*;}-keep class com.android.volley.Response$* {*;}-keep class com.android.volley.Request$* {*;}-keep class com.android.volley.RequestQueue$* {*;}-keep class com.android.volley.toolbox.HurlStack$* {*;}-keep class com.android.volley.toolbox.ImageLoader$* {*;}-keep class org.apache.http.** {*;}
问题依旧没有解决!!!
折腾无数次之后,想到由于之前都是在MacOS上开发iOS版,转到windows上开发Android时将Android Studio、gradle版本都升级到了最新版本。于是开始降级gradle版本,将gradle版本从5.1.1降级到4.6,插件从3.4降级到3.1在构建时出错,原因是插件版本和gradle版本不一致。翻看Android Developers
最后将gradle版本改为4.6 插件版本改为3.2 构建、打包、测试。搞定!
更多相关文章
- Android中使用BuildConfig.DEBUG必须知道的内幕
- android studio报错Unsupported major.minor version的解决
- Android(安卓)适配Q版本Beta2
- android P系统访问http请求最简单解决方案
- 关于Android(安卓)27.1.1版本不兼容问题 --解决support-annotati
- Android(安卓)Studio利用BuildConfig获取版本名和版本号
- gradle 指定导出包的名字和路径
- Android(安卓)studio 多渠道打包(超简洁版)
- android sdk命令行update