2016-04-26 43 views
0

“ASM-4.0.jar”, “org.objectweb.asm”,如果包括此的.jar,我得到这个错误,而建设:Proguard混淆时出现一个jar乱码,我该怎么办?

AGPBI: {"kind":"error","text":"Uncaught translation error: com.android.dx.cf.code.SimException: com.android.dx.rop.cst.CstMethodRef cannot be cast to com.android.dx.rop.cst.CstInterfaceMethodRef","sources":[{}]} 
AGPBI: {"kind":"error","text":"Uncaught translation error: com.android.dx.cf.code.SimException: com.android.dx.rop.cst.CstMethodRef cannot be cast to com.android.dx.rop.cst.CstInterfaceMethodRef","sources":[{}]} 
AGPBI: {"kind":"error","text":"Uncaught translation error: com.android.dx.cf.code.SimException: com.android.dx.rop.cst.CstMethodRef cannot be cast to com.android.dx.rop.cst.CstInterfaceMethodRef","sources":[{}]} 
AGPBI: {"kind":"error","text":"Uncaught translation error: com.android.dx.cf.code.SimException: com.android.dx.rop.cst.CstMethodRef cannot be cast to com.android.dx.rop.cst.CstInterfaceMethodRef","sources":[{}]} 
AGPBI: {"kind":"error","text":"4 errors; aborting","sources":[{}]} 

有些部分从Proguard的配置:

#-libraryjars libs/asm-4.0.jar 
-keep class !org.objectweb.asm.** { *; } 
-dontwarn org.objectweb.asm.** 

完整的ProGuard配置:http://pastebin.com/mxXK4WvY

-dontobfuscate

这行使proguard工作,但我需要混淆。

我该怎么办?这个罐子是Kryonet需要的,我的整个游戏都是建立在它上面的。

+2

严正花说看起来不对。 – rekire

+0

@rekire,但如果我删除它,没有任何变化,仍然不起作用 –

+1

我刚刚检查了你的proguard文件。这是我见过的最长的一次。你确定只有四条线会导致问题吗?你可以用[jadx](https://github.com/skylot/jadx)检查你的apk文件的内容来检查哪些类被删除。 – rekire

回答

0

我想我固定它通过使这样的:“!”

-keep class org.objectweb.asm.** { *; } 
-keepclassmembers class org.objectweb.asm.** { *; } 
-keepclassmembernames class org.objectweb.asm.** { *; } 
-dontwarn org.objectweb.asm.**