我有一个带有几个模块的项目,libs文件夹中的一些jar依赖项和一些其他gradle依赖项.我正在尝试构建一个启用了proguard的发布apk,但是在构建过程中我遇到了很多警告,因为某些依赖项.例如:
Warning:org.codehaus.jackson.jaxrs.JacksonjsonProvIDer: can't find superclass or interface javax.ws.rs.ext.MessageBodyReader
有人请参考指南,了解如何正确定义依赖关系的规则.我是否需要为app模块之外的模块添加规则.
编辑:
我已将以下规则添加到app build.gradle文件中:
-keep interface org.codehaus.jackson.** { *; }-keep class org.codehaus.jackson.** { *; }
但我仍然在构建过程中收到警告.
解决方法:
我正在使用此规则进行改造
-keep class com.squareup.okhttp.** { *; }-keep interface com.squareup.okhttp.** { *; }-dontwarn com.squareup.okhttp.**-dontwarn rx.**-dontwarn retrofit.**-dontwarn okio.**-keep class retrofit.** { *; }-keepclasseswithmembers class * { @retrofit.http.* <methods>;}
而我的杰克逊规则是
-keepattributes *Annotation*,EnclosingMethod,Signature-keepnames class com.fasterxml.jackson.** { *; } -dontwarn com.fasterxml.jackson.databind.** -keep class org.codehaus.** { *; } -keepclassmembers public final enum org.codehaus.jackson.annotate.JsonautoDetect$Visibility { public static final org.codehaus.jackson.annotate.JsonautoDetect$Visibility *; }-keep public class your.class.** { public voID set*(***); public *** get*();}
编辑
你的库罐子引用了更多的库罐子(Mortbay,SLF4J,Apache Commons Logging,Log4j,…)添加这些带有额外“-libraryjars”选项的罐子应该可以解决问题.如果你没有重新引用它们,那么使用这个规则
-dontwarn javax.management.** -dontwarn java.lang.management.** -dontwarn org.apache.log4j.** -dontwarn org.apache.commons.logging.** -dontwarn org.slf4j.** -dontwarn org.Json.*
总结 以上是内存溢出为你收集整理的Android:依赖项和模块的Proguard规则全部内容,希望文章能够帮你解决Android:依赖项和模块的Proguard规则所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)