Eclipse安装错误:INSTALL_FAILED_UID_CHANGED

时间:2012-09-09 10:16:45

标签: android eclipse

我在真正的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!

11 个答案:

答案 0 :(得分:11)

我偶然发现了INSTALL_FAILED_DEXOPT和INSTALL_FAILED_UID_CHANGED错误的解决方案

经过大量测试后,各种技巧徒劳无功,我终于找到了解决这个棘手问题的主要解决方案!

我认为问题是由Eclipse错误引起的! ,实际上eclipse不能仅仅因为字符串名称(进一步描述)而复制和安装构建的APK文件

我应该补充一点,当您在互联网上使用技巧,例如数据/数据中的删除包名称文件夹时,您将遇到一个新的粘滞错误“ 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中的一个字符串名称

所以我删除了这个字符串并注释了所有引用的代码

然后我删除/ data / data中的包名称文件夹(如果您使用的是实际设备,则应具有root访问权限,如果您使用模拟器只是在打开模拟器之前擦除数据或制作新的AVD)

现在问题解决了!

您可以轻松继续编码!

答案 1 :(得分:4)

这个解决方案终于为我工作了,没有root:

$ 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,但是我很乐意继续...

答案 2 :(得分:4)

我尝试了所有这些答案 但没效果

uproperly uninstall。

解决方案:只需重启

答案 3 :(得分:2)

应用程序可能未正确卸载。可能还有数据文件夹。因此,请尝试手动删除应用程序的数据文件夹,然后再次尝试安装该应用程序。

答案 4 :(得分:0)

或者,删除模拟器并重新配置它。

答案 5 :(得分:0)

可能有人帮忙......

我有root设备进行调试。有时我会从/data/data/my.package备份我的应用程序数据,然后通过adb shell进行恢复。在还原之前,我删除my.package文件夹,重新创建并复制其他子文件夹和文件。在下次更改并从eclipse运行项目之后,获取INSTALL_FAILED_UID_CHANGED错误。

我的错误:我不应该删除my.package文件夹。我必须只删除此文件夹中的所有内容,因为在重新创建文件夹中,我获得了新的所有者文件夹my.package。

答案 6 :(得分:0)

有一个解决方法。如果您没有root设备且无法访问/ data / data /文件夹,则只需重置设备即可。 它将从数据文件夹中删除所有内容,您可以再次安装干净的应用程序 唯一的缺点是一切都将从您的手机中删除。

答案 7 :(得分:0)

我在模拟器上遇到过这个问题。我删除了avd并创建了一个新的。问题消失了。

答案 8 :(得分:0)

已经有一个数据目录,其中包含您尝试安装的软件包的名称,并且分配了不同的UID。获取root访问权限,然后尝试使用cmd中的以下命令删除已存在的目录

  rm -r /data/data/com.your.package

或尝试重命名您的应用程序包,以便在您的设备上运行它。

答案 9 :(得分:0)

所以,如果你这样下来发现这个...没有什么可能对你有用。 然而,有一个简单的解决方案。这显然是因为卸载不当(可能是由于电缆连接错误)。

<强>解 从Play商店下载SDMaid,删除尸体文件(垃圾文件)。 重新运行应用程序。 (但你需要让你的设备生根)

答案 10 :(得分:0)

这个解决方案对我有用:

  1. 将您的APK放入设备的存储/ SD卡

  2. adb shell pm install -l -r "/sdcard/<apk_filename>.apk"