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的主要内容,如果未能解决你的问题,请参考以下文章