gpt4 book ai didi

Android simplexml.jar混淆问题

转载 作者:太空宇宙 更新时间:2023-11-03 10:30:07 25 4
gpt4 key购买 nike

我只是尝试通过 simple-xml-2.6.jar 解析一个简单的 xml 文档。我把这个 jar 放到一个名为 lib 的文件夹中,然后将它添加到库中。然后我尝试跳过这个 jar,所以在 proguard.cfg 中编写代码就像下面这样:

-optimizationpasses 5
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose
-optimizations !code/simplification/arithmetic,!field/*,!class/merging/*
-libraryjars lib/simple-xml-2.6.jar
-dontwarn javax.xml.stream.events.**
-dontwarn javax.xml.stream.**
-keeppackagenames com.wang.demo
-keep public class org.simpleframework.** { *; }
-keep public class org.simpleframework.xml.core.** { *; }
-keep public class org.simpleframework.* { *; }
-keep public class org.simpleframework.xml.core.* { *; }
-keep public class org.simpleframework.*
-keep public class org.simpleframework.xml.core.*
-keep public class org.simpleframework.** { public protected *; }
-keep public class org.simpleframework.xml.core.** { public protected *; }
-keep public class javax.xml.** { *; }
-keepattributes *Annotation*
-dontskipnonpubliclibraryclasses
-keep public class * extends com.wang.demo.CommonResponse { *; }
-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference
-keep public class com.android.vending.licensing.ILicensingService
-keepclasseswithmembernames class * {
native <methods>;
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet);
}
-keepclasseswithmembernames class * {
public <init>(android.content.Context, android.util.AttributeSet, int);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keep class * implements android.os.Parcelable {
public static final android.os.Parcelable$Creator *;
}

我想涵盖所有异常,但它显示的 logcat:

08-25 17:06:56.886: WARN/System.err(8745): java.lang.NoSuchMethodException: m(dm,Element)
08-25 17:06:56.886: WARN/System.err(8745): at java.lang.Class.getMatchingConstructor(Class.java:643)
08-25 17:06:56.886: WARN/System.err(8745): at java.lang.Class.getConstructor(Class.java:472)
08-25 17:06:56.886: WARN/System.err(8745): at org.simpleframework.xml.core.at.a(Unknown Source)
08-25 17:06:56.897: WARN/System.err(8745): at org.simpleframework.xml.core.be.a(Unknown Source)
08-25 17:06:56.897: WARN/System.err(8745): at org.simpleframework.xml.core.q.b(Unknown Source)
08-25 17:06:56.897: WARN/System.err(8745): at org.simpleframework.xml.core.q.a(Unknown Source)
08-25 17:06:56.897: WARN/System.err(8745): at org.simpleframework.xml.core.b.a(Unknown Source)
08-25 17:06:56.897: WARN/System.err(8745): at org.simpleframework.xml.core.b.<init>(Unknown Source)
08-25 17:06:56.897: WARN/System.err(8745): at org.simpleframework.xml.core.av.a(Unknown Source)
08-25 17:06:56.897: WARN/System.err(8745): at org.simpleframework.xml.core.dn.b(Unknown Source)
08-25 17:06:56.897: WARN/System.err(8745): at org.simpleframework.xml.core.ar.h(Unknown Source)
08-25 17:06:56.897: WARN/System.err(8745): at org.simpleframework.xml.core.ar.g(Unknown Source)
08-25 17:06:56.897: WARN/System.err(8745): at org.simpleframework.xml.core.ed.a(Unknown Source)
08-25 17:06:56.897: WARN/System.err(8745): at org.simpleframework.xml.core.az.a(Unknown Source)
08-25 17:06:56.897: WARN/System.err(8745): at org.simpleframework.xml.core.Persister.read(Unknown Source)
08-25 17:06:56.897: WARN/System.err(8745): at org.simpleframework.xml.core.Persister.read(Unknown Source)
08-25 17:06:56.897: WARN/System.err(8745): at org.simpleframework.xml.core.Persister.read(Unknown Source)
08-25 17:06:56.897: WARN/System.err(8745): at org.simpleframework.xml.core.Persister.read(Unknown Source)
08-25 17:06:56.907: WARN/System.err(8745): at org.simpleframework.xml.core.Persister.read(Unknown Source)


So anyone help me fix it?

最佳答案

我也有同样的问题。

我认为是因为 proguard 更改了 Annotation 属性的名称。例如,注释属性定义为:

public @interface Attribute
{
public String name() default "";
public String empty() default "";
}

但是经过混淆之后,就变成了:

public @interface Attribute
{
public abstract String a();
public abstract boolean b();
}

然后,在运行时,代码将无法通过反射获取属性名称。

关于Android simplexml.jar混淆问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7188056/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com