Eclipse安装错误:INSTALL_FAILED_UID_CHANGED
我在真正的Android设备上从eclipse运行Android应用程序有问题
当我点击运行它只是让我看到这个错误:安装错误: INSTALL_FAILED_UID_CHANGED
logcat的:
[2012-09-09 14:38:26 - SearchApp] Android Launch! [2012-09-09 14:38:26 - SearchApp] adb is running normally. [2012-09-09 14:38:26 - SearchApp] Performing com.example.MainActivity activity launch [2012-09-09 14:38:26 - SearchApp] Automatic Target Mode: using device 'cff192abd7f551f' [2012-09-09 14:38:26 - SearchApp] Uploading SearchApp.apk onto device 'cff192abd7f551f' [2012-09-09 14:38:27 - SearchApp] Installing SearchApp.apk... [2012-09-09 14:38:28 - SearchApp] Installation error: INSTALL_FAILED_UID_CHANGED [2012-09-09 14:38:28 - SearchApp] Please check logcat output for more details. [2012-09-09 14:38:28 - SearchApp] Launch canceled!
我事实上find了解决INSTALL_FAILED_DEXOPT和INSTALL_FAILED_UID_CHANGED错误
经过大量的testing后,我终于find了解决这个棘手问题的主要方法!
我认为这个问题是由Eclipse错误引起的! ,实际上eclipse不能复制和安装构build的APK文件只是因为一个string名称(进一步描述)
我应该补充说,当你在互联网上使用技巧,例如在数据/数据中删除包名称文件夹,你将面临一个新的粘性错误“ INSTALL_FAILED_DEXOPT ”
所以让我们来看看如何解决INSTALL_FAILED_DEXOPT和INSTALL_FAILED_UID_CHANGED
在我的情况下,当我检查日志猫我注意到下面的行:
09-30 19:03:19.882: I/PackageManager(314): Running dexopt on: com.example.searchapp 09-30 19:03:19.921: E/dalvikvm(6129): Invalid name: 'search_country_name' 09-30 19:03:19.921: E/dalvikvm(6129): Trouble with item 226 @ offset 0x2094 09-30 19:03:19.921: E/dalvikvm(6129): Cross-item verify of section type 0004 failed 09-30 19:03:19.921: E/dalvikvm(6129): ERROR: Byte swap + verify failed 09-30 19:03:19.961: E/dalvikvm(6129): Optimization failed 09-30 19:03:19.961: W/installd(144): DexInv: --- END '/data/app/com.example.searchapp-1.apk' --- status=0xff00, process failed 09-30 19:03:19.961: E/installd(144): dexopt failed on '/data/dalvik-cache/data@app@com.example.searchapp-1.apk@classes.dex' res = 65280 09-30 19:03:19.961: W/PackageManager(314): Package couldn't be installed in /data/app/com.example.searchapp-1.apk
正如你所看到的第二行是: 无效的名称:'search_country_name'
这是我在String.xml中的一个string名称
所以我删除这个string,并注释所有引用的代码
然后,我删除/ data / data中的包名称文件夹(如果您使用的是实际的设备,则应该拥有root访问权限,如果您正在使用模拟器在打开模拟器之前擦除数据或创build新的AVD)
现在问题解决了!
你可以轻松地继续编码!
这个解决scheme终于为我工作没有根:
$ platform-tools/adb -d install /path/to/proj/bin/foo.apk 797 KB/s (4872885 bytes in 5.963s) pkg: /data/local/tmp/foo.apk Success $ platform-tools/adb -d uninstall com.example.foo.bar Success
我不完全明白为什么这样工作,从Eclipse安装不起作用的同一个APK,但我只是高兴地继续前进…
我尝试了所有这些答案,但没有效果
过度卸载。
解决scheme: 只需重新启动键
应用程序可能没有正确卸载。 可能有数据文件夹被遗漏。 因此,请尝试手动删除应用程序的数据文件夹,然后再次尝试安装应用程序。
或者,删除模拟器并重新configuration它。
可能是任何人的帮助…
我有根设备进行debugging。 有时我从/data/data/my.package备份我的应用程序数据,稍后由adb shell进行恢复。 还原之前,我删除my.package文件夹,重新创build和复制其他子文件夹和文件。 之后在下一次更改并从eclipse运行项目,得到INSTALL_FAILED_UID_CHANGED错误。
我的错误:我不应该被删除my.package文件夹。 我必须只删除这个文件夹中的所有文件,因为在重新创build文件夹我得到新的所有者文件夹my.package。
有一个工作。 如果您没有固定的设备,并且您也无法访问/数据/数据/文件夹,那么只需重置您的设备。 它将删除数据文件夹中的所有内容,并且可以再次安装干净的应用 唯一的缺点是一切都会从你的手机中删除。
我在模拟器上有这个问题。 我删除了avd并创build了一个新的。 问题消失了。
已经有一个数据目录,其中包含您要使用不同的UID分配的软件包的名称。 获取root权限,然后尝试使用cmd中的以下命令删除已经存在的目录
rm -r /data/data/com.your.package
或尝试重命名您的应用程序包以在您的设备上运行它。
所以,如果你来这find这个..没有什么可能为你工作。 然而,这是一个简单的解决办法。 这显然是由于卸载不当(可能是由于电缆连接错误)。
解决scheme从Play-Store下载SDMaid ,并删除尸体文件(垃圾文件)。 重新运行应用程序。 (但你需要有你的设备植根)
这个解决scheme为我工作:
-
把你的APK到设备的存储/ SD卡
-
adb shell pm install -l -r "/sdcard/<apk_filename>.apk"