在“ProGuarded”应用程序中使用“ProGuarded”库失败。非ProGuard应用程序或lib工作正常

时间:2015-12-15 19:40:29

标签: java android proguard

我有一个已经使用ProGuard优化和混淆的库,如果我不在应用程序上使用ProGuard,它可以正常工作。也就是说,我可以看到它将HTTP请求发送到正确的位置,这会导致应用程序正确响应某些触摸事件。同样,如果我在应用程序上使用ProGuard但不是库,那么一切仍然正常。当lib和app分别是“ProGuarded”时,我只遇到问题,app / library不再发出任何HTTP请求。为什么我在这个“双ProGuard”情况下遇到问题?我开始怀疑是否存在类命名冲突,并且库只是调用了错误的类。

该应用的ProGuard规则文件如下:

-dontwarn com.mylibrary.**
-dontwarn org.acra.**
-dontwarn org.apache.**
-dontwarn com.google.**

-keepattributes *Annotation*

-keep class com.mylibrary.** { *; }

-keep class org.acra.** {
    *;
}

编辑:为了澄清,这是我自己的库,没有错误被抛出。一切都很好,应用程序按预期运行,但库应该添加的功能除外。

1 个答案:

答案 0 :(得分:0)

事实证明应用程序的Proguard规则文件中有规则导致库再次被混淆,破坏了功能。我添加了一条规则,以确保在Proguard过程中跳过整个库,一切都解决了。