Java Android(ART)崩溃,错误为JNI在应用程序中检测到错误:jarray是无效的堆栈间接引用表或无效引用

Java Android(ART)崩溃,错误为JNI在应用程序中检测到错误:jarray是无效的堆栈间接引用表或无效引用,java,android,android-ndk,java-native-interface,leptonica,Java,Android,Android Ndk,Java Native Interface,Leptonica,我正在编写一个Android应用程序,它处理来自本机C(NDK r10d)的图片。该代码一直运行良好,直到最近引入了对JNI更严格的ART。因此,代码在Dalvik上运行良好(例如,在Lolipop前的设备上),但在最新的手机上,ii会创建一个SIGENV。 我现在得到错误: 04-26 16:18:34.169:E/art(21443):0xb4a2dd00 SpaceTypeMallocSpace begin=0x12c00000,end=0x12e01000,limit=0x32c0000


我正在编写一个Android应用程序,它处理来自本机C(NDK r10d)的图片。该代码一直运行良好,直到最近引入了对JNI更严格的ART。因此,代码在Dalvik上运行良好(例如,在Lolipop前的设备上),但在最新的手机上,ii会创建一个SIGENV。
我现在得到错误:

04-26 16:18:34.169:E/art(21443):0xb4a2dd00 SpaceTypeMallocSpace begin=0x12c00000,end=0x12e01000,limit=0x32c00000,size=2MB,capacity=192MB,non_growth_limit_capacity=512MB,name=“main rosalloc space”]
04-26 16:18:34.170:E/art(21443):0xb4ae5640 allocspace主rosalloc空间实时位图3[开始=0x12c00000,结束=0x32c00000]
04-26 16:18:34.170:E/art(21443):0xb4ae5660 allocspace主rosalloc空格标记位图3[开始=0x12c00000,结束=0x32c00000]
04-26 16:18:34.170:E/art(21443):0xb4874120 SpaceTypeImageSpace开始=0x6f5ab000,结束=0x6ff21e58,大小=9MB,name=“/data/dalvik cache/arm/system@framework@boot.art“]
04-26 16:18:34.170:E/art(21443):0xb4875220图像空间/数据/dalvik缓存/arm/system@framework@boot.art实时位图0[开始=0x6f5ab000,结束=0x6ff21f00]
04-26 16:18:34.170:E/art(21443):0xb4875220图像空间/数据/dalvik缓存/arm/system@framework@boot.art实时位图0[开始=0x6f5ab000,结束=0x6ff21f00]
04-26 16:18:34.170:E/art(21443):0xb49d9dd0 SpaceTypeZygoteSpace begin=0x72f09000,end=0x740c7000,size=17MB,name=“Zygote space”]
04-26 16:18:34.170:E/art(21443):0xb4875440异空间受精卵/非移动空间活动位图0[开始=0x72f09000,结束=0x740c7000]
04-26 16:18:34.170:E/art(21443):0xb4875460异位受精卵/非移动空格标记位图0[开始=0x72f09000,结束=0x740c7000]
04-26 16:18:34.170:E/art(21443):0xb4a2dc80 SpaceTypeMallocSpace开始=0x740c7000,结束=0x740d6000,限制=0x76f09000,大小=60KB,容量=46MB,非增长限制容量=46MB,name=“非移动空间”]
04-26 16:18:34.170:E/art(21443):0xb4ae5460 allocspace非移动空间实时位图4[begin=0x740c7000,end=0x76f09000]
04-26 16:18:34.170:E/art(21443):0xb4ae53c0 allocspace非移动空格标记位图4[开始=0x740c7000,结束=0x76f09000]
04-26 16:18:34.170:E/art(21443):0xb486d340大对象空间:gcretentionPolicyAlways集合
04-26 16:18:34.263:A/art(21443):art/runtime/check_jni.cc:65]jni在应用程序中检测到错误:jarray是无效的堆栈间接引用表或无效引用:0x740c9268(0xdead4321)
04-26 16:18:34.263:A/art(21443):art/runtime/checkjni.cc:65]调用GetByteArrayElements
04-26 16:18:34.263:A/art(21443):art/runtime/check_jni.cc:65]来自boolean com.googlecode.leptonica.android.Pix.nativeGetData(int,字节[])
04-26 16:18:34.263:A/art(21443):art/runtime/check_jni.cc:65]“main”prio=5 tid=1 Runnable
04-26 16:18:34.263:A/art(21443):art/runtime/check_jni.cc:65]| group=“main”scont=0 dsCount=0 obj=0x72f09000 self=0xb4827800
04-26 16:18:34.263:A/art(21443):art/runtime/check_jni.cc:65]| sysTid=21443 nice=0 cgrp=default sched=0/0 handle=0xb6f6abec
04-26 16:18:34.263:A/art(21443):art/runtime/check_jni.cc:65]| state=R schedstat=(427402282 63106827 397)utm=28 stm=14 core=3 HZ=100
04-26 16:18:34.263:A/art(21443):art/runtime/check_jni.cc:65]| stack=0xbe5e3000-0xbe5e5000 stackSize=8MB
04-26 16:18:34.263:A/art(21443):art/runtime/check_jni.cc:65]|保持互斥体=“变数锁”(共享保持)
04-26 16:18:34.263:A/art(21443):art/runtime/check_jni.cc:65]本机:#00 pc 00004e64/system/lib/libbacktrace_libc++.so(UnwindCurrent::Unwind(unsigned int,ucontext*)+23)
04-26 16:18:34.263:A/art(21443):art/runtime/check_jni.cc:65]本机:#01 pc 00003665/system/lib/libbacktrace_libc++.so(Backtrace::Unwind(unsigned int,ucontext*)+8)
04-26 16:18:34.263:A/art(21443):art/runtime/check_jni.cc:65]native:#02 pc 00256429/system/lib/libart.so(art::DumpNativeStack(std:u 1::basic_ostream&,int,char const*,art::mirror::ArtMethod*)+84)
04-26 16:18:34.263:A/art(21443):art/runtime/check_jni.cc:65]native:#03 pc 00238fe7/system/lib/libart.so(art::Thread::Dump(std:uu 1::basic_ostream&)const+158)
04-26 16:18:34.263:A/art(21443):art/runtime/check_jni.cc:65]本机:#04 pc 000b191b/system/lib/libart.so(art::jnibort(char const*,char const*)+610)
04-26 16:18:34.263:A/art(21443):art/runtime/check_jni.cc:65]本机:#05 pc 000b2055/system/lib/libart.so(art::jnibortf(char const*,char const*,…)+68)
04-26 16:18:34.263:A/art(21443):art/runtime/check_jni.cc:65]本机:#06 pc 000b445/system/lib/libart.so(art::ScopedCheck::check(bool,char const*,…)(.constprop.129)+480)
04-26 16:18:34.263:A/art(21443):art/runtime/check_jni.cc:65]本机:#07 pc 000bee03/system/lib/libart.so(art::CheckJNI::getbytearrayements(_JNIEnv*,_jbyteraray*,unsigned char*)+62)
04-26 16:18:34.263:A/art(21443):art/runtime/check_jni.cc:65]本机:#08 pc 00239478/data/app/com.bill2bin.core.lib.demo-1/lib/arm/liblept.so(_JNIEnv::getbytearrayerements(_jbyterarray*,unsigned char*)+48)
04-26 16:18:34.263:A/art(21443):art/runtime/check_jni.cc:65]本机:#09 pc 002399c/data/app/com.bill2bin.core.lib.demo-1/lib/arm/liblept.so(Java_com_googlecode_leptonica_android_Pix_nativeGetData+540)
04-26 16:18:34.263:A/art(21443):art/runtime/check_jni.cc:65]本机:#10 pc 0008d3b5/data/dalvik cache/arm/data@app@com.bill2bin.core.lib.demo-1@base.apk@classes.dex(Java_com_googlecode_leptonica_android_Pix_nativeGetData_I_3B+104)
04-26 16:18:34.264:A/art(21443):art/runtime/check_jni.cc:65]位于com.googlecode.leptonica.android.Pix.nativeGetData(本机方法)
04-26 16:18:34.264:A/art(21443):art/runtime/checkjni.cc:65]位于com.googlecode.leptonica.android.Pix.getData(Pix.java:94)
04-26 16:18:34.264:A/art(21443):art/runtime/checkjni.cc:65]位于com.bill2bin.core.lib.demo.VideoPipeDebug.testDoJNIDebug(VideoPipeDebug.java:449)
04-26 16:18:34.264:A/艺术(21443):艺术/运行时/检查
jclass localClass = env->FindClass("MyClass");
jclass globalClass = reinterpret_cast<jclass>(env->NewGlobalRef(localClass));