NoClassDefFoundError与LuaJ。

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

我把 luaj-jme-3.0-beta.jar 添加到了 libs 文件夹下。

在 "Project Structure" 的 libraries 中,我添加了项目库 luaj-jme-3.0-beta.jar

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

在我的 MainActivity 中调用 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 库没有包含在 apk 文件中。

我刚刚接触 gradle,应该如何将 lua 库添加到 apk 文件中?我已经 Google 了两天,但是找不到解决方案。

如何解决这个错误?

点赞
用户2361336
用户2361336

在将luaj-jme-3.0-beta.jar添加到项目结构中后,右键单击它并选择add as library

您的应用程序的其余部分似乎没问题,因为您已在Gradle文件的依赖项下添加了编译命令。

编辑:

请遵循以下步骤,这是您所面临的常见问题。

1.在应用程序打开的同时,转到File = > Close Project

2.在项目的根位置(即'C:\Users \ Username \ AndroidStudioProjects \ MyApplicationProject \')上打开cmd(命令提示符)。

3.在cmd中键入gradlew clean,等待它完成处理命令。

4.重新在Android Studio中打开应用程序项目。

5.测试运行您的应用程序,应该可以正常工作。

2013-08-18 16:19:27