gpt4 book ai didi

Android Proguard ExceptionInInitializerError 和 RuntimeException

转载 作者:太空宇宙 更新时间:2023-11-03 12:09:06 26 4
gpt4 key购买 nike

我想混淆我的 .apk,但我在使用 Proguard 时遇到了一些麻烦。使用 eclipse 我启用了这个:

# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt

我正在使用 4 个外部库:

  • android-support-v4.jar
  • 九老-android-lib.jar
  • gson-2.2.2.jar
  • commons-io-2.4.jar

我想我在使用 gson 时遇到了问题:

private static Type MY_DATA_TYPE = new TypeToken<Pair<Map<Point, Void>, Integer>>() {}.getType();

每次我使用它时:

FATAL EXCEPTION: main
java.lang.ExceptionInInitializerError at com.myapp.MyActivity.onCreate(Unknown Source)

...

Caused by: java.lang.RuntimeException: Missing type parameter.
at com.google.gson.reflect.TypeToken.getSuperclassTypeParameter(Unknown Source)
at com.google.gson.reflect.TypeToken.<init>(Unknown Source)

我正在使用这个选项,但我想它不会有帮助:

-keepattributes Exceptions, InnerClasses, *Annotation*, EnclosingMethod

-dontskipnonpubliclibraryclassmembers
-libraryjars .../libs/android-support-v4.jar
-libraryjars .../libs/nine-old-android-lib.jar
-libraryjars .../libs/gson-2.2.2.jar
-libraryjars .../libs/commons-io-2.4.jar


-keep class java.** { *; }
-keep class android.** { *; }
-keep class org.** { *; }
-keep class com.google.** { *; }
-keep class com.facebook.** { *; }
-keep class com.nineoldandroids.** { *; }

我该如何解决这个问题并创建一个正常工作的混淆后的 .apk?
感谢您的宝贵时间。

最佳答案

猜猜这是一个 gson“问题”,这是解决方案:

-keepattributes Signature
-keep class sun.misc.Unsafe { *; }
-keep class com.google.gson.examples.android.model.** { *; }

感谢https://groups.google.com/forum/#!topic/google-gson/6XuHfOoZIKo

关于Android Proguard ExceptionInInitializerError 和 RuntimeException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17429070/

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