我对 Android 的混淆很陌生,但最近几天我开始尝试 Proguard。无论如何,我被困在所谓的 Proguard hell 里了。
我的应用程序的结构是我有 3 个不同的项目。一个库和两个应用项目。这两个应用程序项目都基于库项目,其中包含应用程序的所有逻辑和库。应用程序项目中几乎没有放置任何内容。
但是,当我尝试导出启用了 Proguard 的应用程序之一时,我在 Jackson JSON 解析库中遇到了一些错误。我尝试了很多不同的事情,甚至尝试忽略这些错误,但这只会使解析部分失败。因此忽略错误并不是正确的做法。
这是我的 proguard-project.txt 文件
-assumenosideeffects class android.util.Log {
public static *** d(...);
public static *** v(...);
}
-keep public class com.google.android.vending.licensing.ILicensingService
-keep class org.codehaus.** { *; }
这些是我得到的错误。
Warning: org.codehaus.jackson.map.ext.JodaSerializers$LocalDateTimeSerializer:
can't find referenced class org.joda.time.LocalDateTime
You should check if you need to specify additional program jars.
Warning: there were 99 unresolved references to classes or interfaces.
You may need to specify additional library jars (using '-libraryjars').
最佳答案
尝试为 joda 时间类添加 -keep
选项:
-keep public class org.joda.time.** {public private protected *;}
-dontwarn org.joda.time.**
关于java - Android 混淆 Proguard 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13866514/