2023-01-21 276
直接跳到主题,Android L引入了ART作为默认运行时.我有一个示例应用程序,基本上是文档查看器.大多数文档查看代码在内的代码,包括背按钮,搜索等,用C编写,Android应用程序使用JNI接口.我更新了代码以使其为Android L构建,并且似乎可以打开文档.但是,当按下返回按钮并关闭文档时,该应用程序似乎崩溃了,并且可以看到以下回溯:
I/DEBUG ( 1390): Abort message: 'art/runtime/check_jni.cc:65] JNI DETECTED ERROR IN APPLICATION: JNI CallIntMethodV called with pending exception 'java.lang.StackOverflowError' thrown in unknown throw location'
I/DEBUG ( 1390): backtrace:
I/DEBUG ( 1390): #00 pc 000390d0 /system/lib/libc.so (tgkill+12)
I/DEBUG ( 1390): #01 pc 0001636d /system/lib/libc.so (pthread_kill+64)
I/DEBUG ( 1390): #02 pc 00016e41 /system/lib/libc.so (raise+10)
I/DEBUG ( 1390): #03 pc 00013cdd /system/lib/libc.so (__libc_android_abort+36)
I/DEBUG ( 1390): #04 pc 000125ac /system/lib/libc.so (abort+4)
I/DEBUG ( 1390): #05 pc 00230fe9 /system/lib/libart.so (art::Runtime::Abort()+188)
I/DEBUG ( 1390): #06 pc 000b9571 /system/lib/libart.so (art::LogMessage::~LogMessage()+1360)
I/DEBUG ( 1390): #07 pc 000c28cd /system/lib/libart.so (art::JniAbort(char const*, char const*)+1124)
I/DEBUG ( 1390): #08 pc 000c2e11 /system/lib/libart.so (art::JniAbortF(char const*, char const*, ...)+68)
I/DEBUG ( 1390): #09 pc 000c65e9 /system/lib/libart.so (art::ScopedCheck::ScopedCheck(_JNIEnv*, int, char const*)+1952)
I/DEBUG ( 1390): #10 pc 000cc8eb /system/lib/libart.so (art::CheckJNI::CallIntMethodV(_JNIEnv*, _jobject*, _jmethodID*, std::__va_list)+42)
按下返回按钮时,当应该关闭文件描述符时,调用了CallIntMethodv,最终将失败.同样的代码似乎在Dalvik上正常工作.我不得不添加以下标志以使JNI代码适合Android L Preview:
-Wno-switch -Wno-sizeof-pointer-memaccess
LOCAL_DISABLE_FORMAT_STRING_CHECKS := true
关键点是为什么现在开始在艺术上失败,而不是在Dalvik上失败.引起问题或编译器严格性引起的CallIntMethodv有任何具体变化导致这种错误引起吗?任何指针.如果需要,我很乐意提供其他详细信息.
更新:我暂时禁用了本机代码调用JNI的呼叫呼叫,我现在似乎没有看到任何崩溃.
我希望这个问题与参考文献的问题有关 – 将本地参考保留并在其他线程或类似的内容上使用.我不确定您的意思是”本机代码呼叫JNI关闭文件”,但也许您将结构传递给JNI的JAVA需要刷新/释放(以便VM复制来自该数据的数据C结构回到VM).
显然,艺术比达维克(Dalvik)进行了一些更严格的JNI检查. android site and href 此页面.您可以使用这样的ADB在真实设备上打开检查:
adb shell setprop debug.checkjni 1
设置为另一个值或重新启动设备将将其关闭.
以上所述是小编给大家介绍的java.lang.StackOverflow Error for Android L preview running art,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!
原文链接:https://77isp.com/post/26228.html
=========================================
https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。
数据库技术 2022-03-28
网站技术 2022-11-26
网站技术 2023-01-07
网站技术 2022-11-17
Windows相关 2022-02-23
网站技术 2023-01-14
Windows相关 2022-02-16
Windows相关 2022-02-16
Linux相关 2022-02-27
数据库技术 2022-02-20
抠敌 2023年10月23日
嚼餐 2023年10月23日
男忌 2023年10月22日
瓮仆 2023年10月22日
簿偌 2023年10月22日
扫码二维码
获取最新动态