1
を使用した場合、アプリケーションがクラッシュしbulletwrapper
マイlibgdx/Iが有効ProGuardので構築されたリリースのapk実行しようと、次の例外を除いて弾丸アプリのクラッシュ:Libgdx ProGuardの
Process: com.my.app, PID: 14042
java.lang.NoSuchMethodError: no static method "Lcom/badlogic/gdx/physics/bullet/linearmath/LinearMathJNI;.SwigDirector_btIDebugDraw_getDefaultColors(Lcom/badlogic/gdx/physics/bullet/linearmath/btIDebugDraw;)J"
at com.badlogic.gdx.physics.bullet.linearmath.LinearMathJNI.swig_module_init(Native Method)
at com.badlogic.gdx.physics.bullet.linearmath.LinearMathJNI.<clinit>(Unknown Source)
at com.badlogic.gdx.physics.bullet.linearmath.LinearMathJNI.btGetVersion(Native Method)
at com.badlogic.gdx.physics.bullet.linearmath.a.a(Unknown Source)
at com.badlogic.gdx.physics.bullet.a.a(Unknown Source)
at com.my.app.i.<init>(Unknown Source)
at com.my.app.h$1.a(Unknown Source)
at com.badlogic.gdx.f.a.b.b.a(Unknown Source)
at com.badlogic.gdx.f.a.b.a(Unknown Source)
at com.badlogic.gdx.f.a.b.a(Unknown Source)
at com.badlogic.gdx.f.a.a.a.a(Unknown Source)
at com.badlogic.gdx.f.a.a.a$1.a(Unknown Source)
at com.badlogic.gdx.f.a.b.c.a(Unknown Source)
at com.badlogic.gdx.f.a.g.a(Unknown Source)
at com.badlogic.gdx.f.a.h.b(Unknown Source)
at com.badlogic.gdx.backends.android.i.onDrawFrame(Unknown Source)
at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1548)
at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1259)
マイアプリはゲームであり、クラッシュがのみ発生します初期メニュー画面ではなく、ゲーム画面が開始されたときに表示されます。これは私のproguard-project.txt
ファイルです:
-verbose
-dontwarn android.support.**
-dontwarn com.badlogic.gdx.backends.android.AndroidFragmentApplication
-dontwarn com.badlogic.gdx.utils.GdxBuild
-dontwarn com.badlogic.gdx.physics.box2d.utils.Box2DBuild
-dontwarn com.badlogic.gdx.jnigen.BuildTarget*
-dontwarn com.badlogic.gdx.graphics.g2d.freetype.FreetypeBuild
-dontwarn com.badlogic.gdx.jnigen.*
-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);
}
-keepclassmembers class com.badlogic.gdx.physics.box2d.World {
boolean contactFilter(long, long);
void beginContact(long);
void endContact(long);
void preSolve(long, long);
void postSolve(long, long);
boolean reportFixture(long);
float reportRayFixture(long, float, float, float, float, float);
}
どうすれば解決できますか?私はプロガードが弾丸を難読化するのを防ぐ必要があると思うが、それをする方法を理解することはできない。
'-dontwarn'は、libgdxによって生成された最初のファイルにありましたが、私はそれらを削除できるかどうかを試してみます。 – nradk
それは十分です – weston
非常に奇妙なlibgdxがファイルを生成しましたが、最も重要な行は省略しました。 – weston