我是新来的整个混淆与Android的东西,但我已经开始尝试Proguard最后的日子。无论如何,我被困在所谓的Proguard地狱中。Android模糊混淆与Proguard问题
我的应用程序的结构是我有3个不同的项目。一个库和两个应用程序项目。这两个应用程序项目都基于包含应用程序的所有逻辑和库的库项目。应用程序项目中几乎没有放置任何东西。
但是,当我尝试导出其中一个应用程序启用Proguard时,我得到杰克逊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').
伟大的家伙,这解决了95%的警告,但有4个更多,他们都是这样的。警告:org.codehaus.jackson.map.ext.DOMSerializer:找不到引用的类org.w3c.dom.bootstrap.DOMImplementationRegistry – parek
尝试为org.w3c。**和其他外部库添加-keep和-dontwarn 。在我的项目中,我试图使用不同的选项,包括-libraryjars和-injars,但我没有运气,所以我必须保留所有来自外部库的包(即使我的应用程序没有直接使用它们)。此外,如果您设法导出您的应用程序,请注意,由于模糊的DTO类,反射方法调用的方法,它仍然可能会在运行时崩溃。 – Leszek