在对我的应用程序进行 dexguard 之后,我在运行我的应用程序时遇到了这个错误
01-01 04:47:02.948: E/AndroidRuntime(8125): FATAL EXCEPTION: Thread-9
01-01 04:47:02.948: E/AndroidRuntime(8125): java.lang.NoSuchMethodError: javax.xml.parsers.DocumentBuilder.setEntityResolver
01-01 04:47:02.948: E/AndroidRuntime(8125): at o.郋.櫯(:134)
01-01 04:47:02.948: E/AndroidRuntime(8125): at o.郋.鷭(:82)
01-01 04:47:02.948: E/AndroidRuntime(8125): at android.SHAREDLIBS.network.ISOManager.LoadISOXMLMessageFactory(:637)
01-01 04:47:02.948: E/AndroidRuntime(8125): at o.Ț.run(:294)
好的,没有问题。只需将该类排除在混淆之外。但是我尝试在 dexguard-project.txt 文件中包含什么并不重要,我仍然会不断收到错误消息。
我尝试过的几件事
-keep public class javax.xml.parsers.**
-keep public class javax.xml.parsers.DocumentBuilder
-keep public abstract class javax.xml.parsers.DocumentBuilder
-keep class javax.xml.parsers.DocumentBuilder.** { *; }
-keep public abstract class javax.xml.parsers.DocumentBuilder.** { *; }
-keep public class javax.xml.parsers.** { *; }
-keep public class javax.xml.parsers.DocumentBuilder.** {public private protected *;}
-keepclassmembers class javax.xml.parsers.DocumentBuilder { public abstract void setEntityResolver (org.xml.sax.EntityResolver); }
-keepclassmembers public abstract class javax.xml.parsers.DocumentBuilder { public abstract void setEntityResolver (org.xml.sax.EntityResolver); }
我正在使用以下标志运行它。
-dontshrink
-dontoptimize
所以显然问题在于混淆步骤。
是的,如果我禁用混淆,它可以正常工作。
我显然做错了什么,因为即使我明确要求排除它,我仍然会不断收到错误。
我是否正确排除了它?还有其他看起来不对的地方吗?