1

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

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

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

在“依赖项”下的 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 库不包含在 apk 文件中。

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

我该如何解决这个错误?

4

1 回答 1

0

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

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

于 2013-08-18T16:19:27.430 回答