LibGDX ProGuard问题

时间:2016-10-06 14:18:10

标签: java libgdx proguard

这是我第三次尝试让ProGuard工作。

我的项目正在使用LibGDX,并使用Gradle构建。 我使用的唯一库是Kryonet 2.21

当我运行ProGuard时,我将生成的.jar添加为输入。 ProGuard自动添加rt.jar

启用缩小和优化,禁用混淆(暂时)。

如果我点击进程,则输出中包含大量有关缺少类的垃圾邮件,例如:

  • Warning: com.badlogic.gdx.utils.GdxBuild: can't find referenced class com.badlogic.gdx.jnigen.BuildTarget
  • Warning: org.lwjgl.opengl.ContextGLES: can't find referenced class org.lwjgl.opengles.EGL

再往下,java.lang.String toString();出现了问题:

Maybe this is library method 'java.nio.FloatBuffer { java.lang.String toString(); }'

(还有更多这种垃圾邮件)。

然后再做一些,比如Maybe this is program method 'org.lwjgl.openal.AL10 { void initNativeStubs(); }'

ProGuard向我提出以下错误:

我已经尝试了几个"工作" LibGDX的ProGuard配置,就像我在上一个问题中提到的那样:LibGDX proguardhttps://github.com/libgdx/libgdx/wiki/ProGuard-DexGuard-and-libGDX

如果有人能帮助我,我将永远感激不尽。

更新

我一直在尝试更多配置。这是我目前的一个:

-dontobfuscate
-dontusemixedcaseclassnames
-dontskipnonpubliclibraryclasses
-dontpreverify
-verbose

-dontwarn android.support.**
-dontwarn com.badlogic.gdx.backends.android.AndroidFragmentApplication
-dontwarn com.badlogic.gdx.utils.GdxBuild
-dontwarn com.badlogic.gdx.jnigen.BuildTarget*
-dontwarn com.badlogic.gdx.graphics.g2d.freetype.FreetypeBuild

-keep class com.badlogic.gdx.controllers.android.AndroidControllers

-keepclassmembers class com.badlogic.gdx.backends.android.AndroidInput* {
   <init>(com.badlogic.gdx.Application, android.content.Context, java.lang.Object, com.badlogic.gdx.backends.android.AndroidApplicationConfiguration);
}

# Kryo
-dontwarn sun.reflect.**
-dontwarn java.beans.**
-dontwarn sun.nio.ch.**
-dontwarn sun.misc.**

-keep class com.esotericsoftware.kryo.** {*;}
-keep class com.esotericsoftware.** {*;}

-keep class java.beans.** { *; }
-keep class sun.reflect.** { *; }
-keep class sun.nio.ch.** { *; }

由于多个例外情况,操作失败:Uncaught translation error: com.android.dx.cf.code.SimException: local variable type mismatch: attempt to set or access a value of type float using a local variable of type int. This is symptomatic of .class transformation tools that ignore local variable information.

0 个答案:

没有答案