AndroLua on Lollipop:JNI DETECTED ERROR IN APPLICATION:无法调用static int org.keplerproject.luajava.LuaJ

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AndroLua on Lollipop:JNI DETECTED ERROR IN APPLICATION:无法调用static int org.keplerproject.luajava.LuaJ相关的知识,希望对你有一定的参考价值。

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

除Android 5.x(Lollipop)外,Android版本的一切顺利

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

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修复了这个bug:

调用luajava.new(...)会在Android ART上产生以下错误:A / art:art / runtime / java_vm_ext.cc:410]应用程序中的JNI DETECTED ERROR:无法调用static int org.keplerproject.luajava.LuaJavaAPI调用CallStaticIntMethod的.javaNew(int,java.lang.Class),类java.lang.Class A / art:art / runtime / java_vm_ext.cc:410]

经过一些代码审查后,我发现了问题。在luajava.c中,第1377行:ret =(* javaEnv) - > CallStaticIntMethod(javaEnv,clazz,method,(jint)stateIndex,classInstance); “clazz”不是我们想要的对象。它应该是:ret =(* javaEnv) - > CallStaticIntMethod(javaEnv,luajava_api_class,method,(jint)stateIndex,classInstance);

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

尼尔。

以上是关于AndroLua on Lollipop:JNI DETECTED ERROR IN APPLICATION:无法调用static int org.keplerproject.luajava.LuaJ的主要内容,如果未能解决你的问题,请参考以下文章

Androlua*布局属性*『类型』

高校927*Androlua的应用

AndroLua

JNI on Chromium for Android

Lollipop CalenderView DatePicker 不调用 OnDateChanged() 方法

关于 JNI 的 FindClass