尝试使用adb
在我的Sony Xperia Z3上安装应用时,我得到以下输出:
3090 KB/s (2508014 bytes in 0.792s)
pkg: /data/local/tmp/MyApp_release.apk
Failure [INSTALL_FAILED_DEXOPT]
我几周前已成功在设备上安装了完全相同的APK文件,但我似乎记得自从我上次成功安装以来手机上有固件更新。
我也可以在我的摩托罗拉Moto G上安装相同的APK。
如果我在安装时查看logcat
输出,我会看到:
I/PackageManager( 2084): Copying native libraries to /data/app-lib/vmdl-125738692
I/PackageManager( 2084): Running dexopt on: com.xxx.yyy.app
E/installd( 1635): installd cannot open '/data/dalvik-cache/data@app@com.xxx.yyy.app-1.apk@classes.dex' for output during dexopt
W/PackageManager( 2084): Couldn't delete native library directory /data/app-lib/com.xxx.yyy.app
W/PackageManager( 2084): Package couldn't be installed in /data/app/com.xxx.yyy.app-1.apk
这表明某些事情在某些时候搞砸了,导致安装期间需要写入的某些文件不能由安装程序写入。已安装的应用列表未显示已安装的现有应用版本(并且我已尝试过adb uninstall)。很遗憾,我无法在设备上使用rm
删除文件,而这些文件并非根植。
看到这个后,我决定重命名包并重建APK,然后我就能成功安装。
从长远来看,我真的不想重命名包(我只是尝试将其作为临时解决方法来查看包名是否是问题)。我不想根我的手机(我肯定会允许我清理任何遗留下来的东西),而且我真的不想重置工厂(我相信也会解决它。)有没有人有我忽略的其他建议?