我正在尝试使用 Proguard 来混淆我的 Android 应用程序。但我遇到了一个奇怪的问题,我希望你们中的一个人能够帮助我。
-keep class android.support.v4.** { *; }
-keep public class com.mysql.** {*;}
-keep class com.actionbarsherlock.** {*;}
-dontwarn android.support.v4.**
-dontwarn com.mysql.**
-libraryjars /libs/mysql-connector-java-5.1.27-bin.jar
-dontshrink
-keepattributes *Annotation*
正如你所看到的,我已经添加了 mysql JDBC lib 作为库和应该保留的类。但是当我尝试将项目编译为 .apk 文件时,我最终遇到了这个奇怪的错误。我不知道为什么,因为根据我的配置,它甚至不应该被触摸。
Proguard returned with error code 1. See console
Note: there were 508 duplicate class definitions.
You should check if you need to specify additional program jars.
Unexpected error while evaluating instruction:
Class = [com/mysql/jdbc/ConnectionImpl]
Method = [isReadOnly(Z)Z]
Instruction = [77] iload v4
Exception = [java.lang.NullPointerException] (null)
Unexpected error while performing partial evaluation:
Class = [com/mysql/jdbc/ConnectionImpl]
Method = [isReadOnly(Z)Z]
Exception = [java.lang.NullPointerException] (null)
Error: null
最佳答案
通过将 Proguard 更新到新的 5.0 版本来修复。
关于java - ProGuard Android - JDBC 错误 - NullPointerException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25959240/