Android JNI中AndEngine GLES2的Proguard问题在应用程序中检测到错误

Android JNI中AndEngine GLES2的Proguard问题在应用程序中检测到错误,android,android-ndk,java-native-interface,proguard,andengine-gles-2,Android,Android Ndk,Java Native Interface,Proguard,Andengine Gles 2,我开发了一个应用程序,使用andEngine的扩展。该应用程序还具有其他功能,这些功能不仅仅关注于andEngine方面。我已在我的应用程序中启用proguard。现在,当我构建应用程序的签名版本并导航到使用andEngine的位置时,我会得到以下堆栈跟踪: JNI DETECTED ERROR IN APPLICATION: JNI GetMethodID called with pending exception java.lang.NoSuchMethodError: no non-st

我开发了一个应用程序,使用andEngine的扩展。该应用程序还具有其他功能,这些功能不仅仅关注于andEngine方面。我已在我的应用程序中启用proguard。现在,当我构建应用程序的签名版本并导航到使用andEngine的位置时,我会得到以下堆栈跟踪:

JNI DETECTED ERROR IN APPLICATION: JNI GetMethodID called with pending exception 
java.lang.NoSuchMethodError: no non-static method    
"Lcom/badlogic/gdx/physics/box2d/World;.beginContact(J)V" at long 
com.badlogic.gdx.physics.box2d.World.newWorld(float, float, boolean) (World.java:-2) at void 
com.badlogic.gdx.physics.box2d.World.<init>(com.badlogic.gdx.math.Vector2, boolean 
(World.java:101)
at void org.andengine.extension.physics.box2d.PhysicsWorld.<init 
(com.badlogic.gdx.math.Vector2, boolean, int, int) (PhysicsWorld.java:61) 
at void org.andengine.extension.physics.box2d.PhysicsWorld.<init> . 
(com.badlogic.gdx.math.Vector2, boolean) (PhysicsWorld.java:57)

在您的例子中,proguard似乎删除了box2d扩展的World.class。尝试将以下内容添加到proguard规则中:

-keep class com.badlogic.gdx.physics.box2d.** { *; }

因此,它不会接触到您的box2d文件。

这很有效!非常感谢,刚刚将其添加到Proguard中,不再导致崩溃。
consumerProguardFiles 'proguard-rules.pro'
-keep class com.badlogic.gdx.physics.box2d.** { *; }