java - Android 应用程序在启动时崩溃,代码为 "E/dex2oat: Failed to create oat file"和 "non-0 exit status"

标签 java android android-studio logcat dex

我的应用程序(仍在开发中)在不同设备上运行良好。但突然拒绝在华为荣耀7(Android 6.0/EMUI 4.0.3)上启动。 Logcat 给了我以下内容:

E/dex2oat: Failed to create oat file:
/data/dalvik-cache/arm64/data@app@myapp.mycomp.de.myapp-1@split_lib_slice_1_apk.apk@classes.dex:
Permission denied

其次是

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.mycomp.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)
because non-0 exit status

spli_lib_slice_N_apk.apk-parts 出现此错误 9 次。我真的不知道它会是什么,特别是因为它直到今天都运行良好。我没有对代码进行任何更改。据我所知,我也不使用任何 multidex。

任何提示表示赞赏,谢谢!

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: Sending signal. PID: 21797 SIG: 9

该进程似乎被 Sigkill 9 杀死,另请参见 SE:App dies with "Sending signal." but no exception or other info

但我还是不知道是什么原因造成的。之后,我清除了 android 应用程序首选项中的应用程序数据,突然应用程序再次启动。调查将继续进行...

最佳答案

尝试禁用即时运行,看看 here

然后编辑你的主dex文件,看看这个resource在 Android 开发者网站上,以确保您在主 dex 文件中启用了正确的类

关于java - Android 应用程序在启动时崩溃,代码为 "E/dex2oat: Failed to create oat file"和 "non-0 exit status",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45064522/

相关文章:

java - 如何使用 Java 从 TCP 发送和接收 RST 标志?

带有 fragment 内标记的Android谷歌地图

android - 签署 APK 而不将 keystore 信息放入 build.gradle

Android Studio 的调试器不会在库模块中的断点处停止

android - 更快地启动不同进程中的 Activity

android - 使用getSegment逐步绘制路径

java - 如何检查 Vector 是否存在并且已在 Java 中定义?

java - 单击按钮时获取 EditText 值并用该值进行数学运算?

java - 设计一个可移植到多种语言的 GUI

android - 创建圆形的 ImageView,因此点击仅适用于圆形区域 android