无法将Xamarin部署到真实的Android设备

24

我的问题与这篇帖子有关:即使应用程序似乎未安装,也出现[INSTALL_FAILED_UPDATE_INCOMPATIBLE]失败

我无法在真实设备上部署我的应用程序,但模拟器上可以正常工作。我遇到了部署错误,但在错误选项卡中没有看到任何内容。

以下是构建输出信息:

2>构建成功。

2>发生错误。有关更多详细信息,请参见日志的完整异常信息。

2>已安装的包不兼容。请手动卸载并重试。

2>

========== 构建: 成功 1 个,失败 0 个,最新 1 个,跳过 0 个 ========== ========== 部署: 成功 0 个,失败 1 个,跳过 0 个 ==========

即使卸载了该应用程序,我仍然无法在真实设备上部署我的应用程序,但其他应用程序通过 VS 安装正常。


如果您使用调试|发布构建的apk通过adbadb install xxxxx.apk)进行手动安装,那么完整的逻辑错误是什么? - SushiHangover
删除您手机上能找到的所有Xamarin共享库。 - hugo
@SushiHangover,我不确定你想说什么,如果我使用debug/release方法进行安装,那么输出就是这样的,会有一个对话框询问是否继续,显示部署错误。我收到了一个错误提示,说“找不到引用的组件System.objectmodel”,但我认为这不是问题所在,因为在模拟器上它可以正常工作。 - Zany
@hugo 怎么做,从我的手机上删除? - Zany
@Demitrian 是的,你的解决方案有效,但每次发生这种情况时我都需要更改名称。 - Zany
显示剩余5条评论
9个回答

55

针对此问题没有特定的解决方案,我认为原因是您的手机操作系统没有完全卸载您的应用程序,应用程序签名仍然存在(在经过重度定制的安卓系统中会发生这种情况,例如我用的是MIUI 8)。 我使用logcat发现了这个问题 - 签名与先前安装的版本不匹配。

可能的解决方案1: 使用Titanium Backup(需要Root权限)在卸载应用程序后完全删除该应用程序文件夹。

可能的解决方案2: 进入设置并从那里删除该应用程序,请确保使用“卸载所有用户”选项(在MIUI 8中无法使用此选项)。

可能的解决方案3: 使用adb彻底卸载您的应用程序,这与“卸载所有用户”相同。

adb uninstall yourpackagename

如果您不知道它,请在Android解决方案的属性中查找。

另一种找到它的方法: 如何在不知道应用程序包名称的情况下从adb中删除应用程序

adb root

然后输入adb shell

adb shell

找出您的应用程序包名称:

pm list packages | grep "您的应用程序名称/与您的应用程序相关的内容"

然后使用:

adb uninstall

或者

pm uninstall

潜在解决方案4:(并非真正的解决方案) 更改应用程序包名称 - 不会与您已安装的应用程序发生冲突

注意:显然,对设备进行硬重置应该可以解决问题。

在我的情况下,第四个选项起作用了,如果有人知道如何从Android中删除先前安装的应用程序签名,请告诉我,我将相应地更新答案(可能需要深入了解文件系统)。


3
一个5%的解决方案对我很有效。重新安装分发版本中的apk,然后从安卓菜单中将其删除。然后我就能够部署调试版本了。 - Gustavo Rossi Muller
@GustavoRossiMuller 很高兴这样一个简单的方法对你有用,我也尝试过了,但并没有成功。我认为即使使用设备内存上的apk文件安装也不行。我已经转向使用原生Android进行开发,不想让这些问题影响我的生产力。 - Zany
3
方案3对我有效:启动ADB命令提示符并执行“adb uninstall yourpackagename”,感谢@Zany! - Jean-Daniel Gasser
3
解决方案3! - wallef

4

有一个简单的技巧

  1. 如果是全新的应用程序 - 只需更改Android包名并从VS部署即可
  2. 如果已经在Play商店发布了 - 那么通过Play商店安装应用程序,然后卸载。然后从VS部署即可。

这个方法对我很有效


2
一个快速的解决方法是在Android清单文件中更改包名。enter image description here

但为了避免未来的问题,我建议你遵循Zany的答案。 - MATCH

1

前往真实设备设置->应用程序->全部应用程序,现在卸载所有的xamarin和mono包,以及如果调试应用程序也在那里,请卸载它并重新运行,这解决了我的同样的问题。


0
如果你遇到这个问题,解决方法很简单。如果你有旧版本的应用程序.apk文件,安装它,然后再卸载即可。这是一个简单的解决方案。

0

我曾经遇到过同样的问题,我通过在Windows 10中禁用勒索软件保护来解决了它。


0

我从Play商店安装了这个应用,然后从那里卸载了它。这似乎正确地将其从设备中删除了。


0

我知道这是一个老问题,但可能是由于您的构建配置。就清单条目而言,ReleaseDebug配置可以且应该不同。如果我尝试部署我的Debug配置,则会出现ADB0030错误。供参考。


0

我尝试卸载应用程序,然后它从Finder中消失了。但是,我收到了这个错误提示。然后我使用了一个实用工具(例如服务禁用器),该实用工具列出了应用程序,然后我使用了实用工具的卸载菜单进行卸载。一切搞定了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接