LuaJ的NoClassDefFoundError

时间:2013-08-18 16:05:00

标签: android android-studio luaj

我正在尝试在Android Studio(V0.2.3)项目中使用LuaJ。

我将luaj-jme-3.0-beta.jar添加到libs文件夹中。

在“项目结构”库下,我添加了项目库luaj-jme-3.0-beta.jar

在“dependancies”下的build.gradle文件中,我添加了这一行:compile files('libs/luaj-jme-3.0-beta1.jar')

在我的MainActivty中,我打电话给luaj:

import org.luaj.vm2.Globals;
import org.luaj.vm2.lib.jme.JmePlatform;
...
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
  Globals globals = JmePlatform.standardGlobals();
}

编译成功,然后将apk文件上传到目标设备后,我收到了此消息:

08-18 16:59:25.533  11363-11363/? E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.NoClassDefFoundError: org.luaj.vm2.lib.jme.JmePlatform
at de.ibr.luaj5.MainActivity.onCreate(MainActivity.java:16)
at android.app.Activity.performCreate(Activity.java:4465)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981)

我使用apkananyser.jar查看apk文件。看起来lua lib不包含在apk文件中。

我是gradle的新手,所以如何将lua lib添加到apk文件中?我已经谷歌搜索了两天,但我找不到解决方案。

如何解决此错误?

1 个答案:

答案 0 :(得分:0)

luaj-jme-3.0-beta.jar添加到项目结构后,右键单击它并选择add as library
您的其他应用程序似乎没问题,因为您已在gradle文件中的依赖项下添加了编译命令。

修改:
请按照这些步骤操作,这是您面临的常见问题 1.当您的应用程序打开时,请转到File =>关闭项目。
2.在项目的根位置打开cmd(命令promt),即'C:\ Users \ Username \ AndroidStudioProjects \ MyApplicationProject \'
3.在cmd上,键入gradlew clean,等待它完成处理命令 4.在Android Studio中重新打开您的应用程序项目 5.测试你的应用程序,它应该工作。