AndroLua on Lollipop: JNI 检测到应用程序中的错误: 无法调用 static int org.keplerproject.luajava.LuaJavaAPI.javaNew(



我想在我的Android应用程序中使用AndroLua作为库。

除Android 5外,Android版本一切正常。x(棒棒糖)

但是如果我调用juajava,我的应用程序在Lollipop下崩溃了。新的lua函数。日志显示

JNI DETECTED ERROR IN APPLICATION: can't call static int org.keplerproject.luajava.LuaJavaAPI.javaNew(int, java.lang.Class) on class java.lang.Class<java.lang.Class>

我该如何解决这个问题?或者是否有在Android上运行lua的替代方案?

https://github.com/jasonsantos/luajava/issues/10修复错误:

调用luajava.new(…)会在Android ART上产生以下错误:/艺术:艺术/运行/java_vm_ext。[00:41] JNI检测到错误不能调用静态整型org.keplerproject.luajava.LuaJavaAPI。javaNew (int, . lang . class)类java.lang.Class A/art:艺术/运行/java_vm_ext。[cc:410]调用CallStaticIntMethod

经过一些代码审查,我找到了问题所在。在luajava.c中,行1377: ret = (*javaEnv)->CallStaticIntMethod(javaEnv, clazz,)方法,(jint)stateIndex, classInstance);"clazz"不是宾语我们想要这里。应该是:ret = (*javaEnv)->CallStaticIntMethod(javaEnv, luajava_api_class, method, (jint)classInstance);

此外,我认为,第1371行:if (clazz == NULL || method == NULL)应该是:if (luajava_api_class == NULL || method == NULL)

近红外光谱。

最新更新