当我使用签名APK构建我的应用程序时,我得到很多"无法找到引用的类"错误。我确实在我的pro guard-rules.pro(对于应用程序)中放了一些这些不警告的消息,但是当我运行发行版Build Variant时,JSON无法识别字段。 以下是我之前提出但未删除的警告声明:
#Warnings to be removed. Otherwise maven plugin stops, but not dangerous
#-dontwarn android.support.**
#-dontwarn com.sun.xml.internal.**
#-dontwarn com.sun.istack.internal.**
#-dontwarn org.codehaus.jackson.**
#-dontwarn org.springframework.**
#-dontwarn java.awt.**
#-dontwarn javax.security.**
#-dontwarn java.beans.**
#-dontwarn javax.xml.**
#-dontwarn java.util.**
#-dontwarn org.w3c.dom.**
#-dontwarn com.google.common.**
#-dontwarn com.octo.android.robospice.persistence.**
#
当我删除这些内容时,我会收到以下警告:
警告:com.fasterxml.jackson.databind.ext.DOMSerializer:找不到引用的类org.w3c.dom.bootstrap.DOMImplementationRegistry 警告:com.fasterxml.jackson.databind.ext.DOMSerializer:找不到引用的类org.w3c.dom.bootstrap.DOMImplementationRegistry 警告:com.fasterxml.jackson.databind.ext.DOMSerializer:找不到引用的类org.w3c.dom.bootstrap.DOMImplementationRegistry 警告:com.fasterxml.jackson.databind.ext.DOMSerializer:无法找到引用的类org.w3c.dom.bootstrap.DOMImplementationRegistry
我不确定我的依赖关系如:
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
// compile "com.google.android.gms:play-services-gcm:8.3.0"
// compile 'com.android.support:appcompat-v7:23.2.0'
compile 'com.google.firebase:firebase-core:9.0.0'
compile 'com.google.firebase:firebase-messaging:9.0.0'
compile 'com.android.support:support-v13:23.1.1'
compile 'com.android.support:appcompat-v7:23.1.1'
compile 'com.fasterxml.jackson.core:jackson-databind:2.6.3'
compile 'org.springframework.android:spring-android-rest-template:1.0.1.RELEASE'
compile 'jackson:jackson-asl:0.9.3'
compile 'com.android.support:design:23.+'
正在进入发布版本。目前,它们位于app的build.gradle文件中。我应该把它们放在别的地方吗?
感谢 -Sonam
答案 0 :(得分:1)
我设法让它发挥作用。我放回了" -dontwarn"声明。我还必须使用以下语句来模糊我的模型getter / setter,因为它无法对其对象类型进行编组。
-keep public class your.domain.package.* {
public *** get*();
public void set*(***);
}
这使我的应用程序正常运行。
答案 1 :(得分:0)
如果您为签名的apk启用了proguard,请在proguard规则文件中排除packages / classes / ..