我终于准备好部署我的应用程序的第一个版本,但经过测试,我无法执行任何需要网络访问的任务。 它在调试模式下工作得很好,据我所知,请求被发送到正确的URL但响应总是为空(消息:空状态:0)。
该项目使用gradle和proguard,所以我已经添加了它:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
此时系统警告我一些不合理的类引用,所以我将这些行添加到proguard_rules.pro文件中:
-dontwarn com.fasterxml.**
-dontwarn com.malinskiy.superrecyclerview.**
-dontwarn com.octo.android.robospice.**
-dontwarn com.squareup.**
-dontwarn io.realm.processor.**
-dontwarn org.joda.time.**
-dontwarn org.springframework.http.**
-keep class com.fasterxml.** { *; }
-keep class com.malinskiy.superrecyclerview.** { *; }
-keep class com.octo.android.robospice.** { *; }
-keep class com.squareup.** { *; }
-keep class io.realm.processor.** { *; }
-keep class org.joda.time.** { *; }
-keep class org.springframework.http.** { *; }
构建成功并且应用程序运行正常,但是当我尝试执行需要网络访问的操作时,它会失败。
虽然应用程序没有崩溃(错误处理ftw),但它确实意味着网络响应侦听器收到了空响应。
知道为什么会这样吗?
更新:它似乎是由缩小过程(proguard)引起的。所以也许我应该开始想知道为什么我一直没有找到那些"类引用未找到"警告...
如果我将minifyEnabled设置为false,则应用程序正常工作。