Android 应用崩溃时以“E/dex2oat:无法创建燕麦文件”和“非 0 退出状态”开头
我的应用(仍为 WIP)在不同设备上运行良好。但突然之间,它拒绝在华为荣耀7(Android 6.0 / EMUI 4.0.3)上启动。Logcat给了我以下信息:
E/dex2oat: 未能创建燕麦文件:
/data/dalvik-cache/arm64/data@app@myapp.mycomp.de.myapp-1@split_lib_slice_1_apk.apk@classes.dex:
权限被拒绝
其次
07-12 19:23:49.223
11280-11280/myapp.mycomp.de.myapp W/art: Failed
execv(/system/bin/dex2oat --runtime-arg -classpath --runtime-arg
--debuggable --instruction-set=arm64 --instruction-set-features=smp,a53 --runtime-arg -Xrelocate --boot-image=/system/framework/boot.art --runtime-arg -Xms64m --runtime-arg -Xmx512m --instruction-set-variant=generic --instruction-set-features=default --dex-file=/data/app/myapp.de.myapp-1/split_lib_slice_1_apk.apk
--oat-file=/data/dalvik-cache/arm64/data@app@myapp.mycomp.de.myapp-1@split_lib_slice_1_apk.apk@classes.dex)
因为非 0 退出状态
对于 ,此错误发生 9 次。我真的不知道它可能是什么,特别是因为它一直运行到今天。我没有对代码进行任何更改。据我所知,我也不使用任何多dex。spli_lib_slice_N_apk.apk-parts
任何提示是值得赞赏的,谢谢!
2017年7月13日更新:我记录了应用程序从它始终工作的设备开始,并且我得到了与上面相同的“错误”。因此,这些消息似乎可能是正常的...在此之后,我查看了故障设备的崩溃日志,并在我上面发布的错误之后不久发现了以下行:
07-12 20:30:35.985 3209-3421/?I/logserver: extract_appname, forward search, appname=myapp.mycomp.de.myapp
07-12 20:30:35.985 3209-3421/?I/logserver: get_fault_appname, appname=myapp.mycomp.de.myapp
07-12 20:30:35.987 3209-3420/?I/logserver: handle_notify_event, send msg [submit:trigger=0,bugtype=2,modulename=myapp.mycomp.de.myapp,level=1,testtype=NORMAL,path=/data/log/unzip/PLK-L01_PLK-L01C432B390_0000000000_20170712203035_crash,mode=1;]
07-12 20:30:36.014 21797-21899/myapp.mycomp.de.myapp I/System: core_booster, getBoosterConfig = false
07-12 20:30:36.290 21797-21797/myapp.mycomp.de.myapp I/Process: 发送信号.PID: 21797 SIG: 9
似乎该过程被Sigkill 9杀死了,另请参阅此处的SE:应用程序以“发送信号”死亡,但没有例外或其他信息。
但我再次不知道是什么原因造成的。在此之后,我清除了Android应用程序首选项中的应用程序数据,然后突然应用程序再次启动。调查将继续...