Xamarin - Android - Visual Studio - 应用程序无法启动。

29
我在使用Visual Studio 2012中的Xamarin开发Android项目。最近我升级了从硬盘驱动器到固态驱动器,所以我重新安装了Windows和所有的程序。
在克隆我的git存储库并尝试在我的设备上运行应用程序后,我一直无法使其运行。我能够启动一个新的helloworld项目并成功运行,但是我无法让这个项目运行。
错误提示如下:
应用程序无法启动。确保应用程序已安装到目标设备,并且具有可启动的活动(MainLauncher = true)。
此外,请检查Build-> Configuration Manager,以确保此项目设置为该配置的Deploy。
我已经寻找解决此问题的方法,但未能找到有效解决方案。
16个回答

43

我解决了问题。某种原因,应用程序在我的设备上仍然存在,尽管它没有显示在我的应用程序中,我需要将其删除。

解决方法是找到我曾经通过电子邮件发送的旧版APK并安装它。然后我卸载了应用程序并从Visual Studio重新部署它。这次它成功了。

你可以在这里阅读更多:https://forums.xamarin.com/discussion/8501/install-failed-update-incompatible

编辑(2017年3月13日):

似乎很多人都发现这个答案有用,所以我决定更新一下另一种卸载应用程序的方法,如果您没有访问旧版本。

如Atul Chaudhary和Nestel提到的,您可以打开adb命令提示符并运行adb uninstall <com.your.application.package.name>。如果还有应用程序残留,这应该能够摆脱它们。


4
这对我解决了问题,虽然我只需进入“设置”->“应用程序”->“全部”,就能卸载它,尽管在应用抽屉中没有启动器,但它仍存在于其中。 - cmeeren
1
设置 > 应用程序管理器 > 您的应用程序名称 > 卸载 - pampi
谢谢!简单来说,使用adb终端方法。在Visual Studio中很容易找到:TOOLS-->Android-->"Android Adb Command Prompt..." - Lepidopteron

9

在这里输入图片描述

  1. 更改了应用程序名称。

  2. 添加了包名。

应用程序在模拟器上开始运行,再次更改应用程序名称后,应用程序继续运行。

注意:我尝试从设置中重置设备、卸载应用程序以及相关的运行时等,但都没有成功。

希望这能帮助到某些人。


1
谢谢!我重命名了应用程序,然后它就可以工作了。然后我把它改回来,它又在我的手机上开始工作了。 - DisibioAaron
这也帮助了我,软件包名称不知怎么消失了,之前是有的。 - Vishnu Babu

8

在 adb shell 中运行以下命令解决了我的问题:

adb shell pm uninstall -k com.packagename

要从Visual Studio工具访问adb shell -> Android -> Android Adb命令提示符。

非常有趣的错误,似乎Visual Studio无法完全卸载先前的版本。


6
显然,OP已经解决了他们的问题,但我仍想发布一个答案,与我遇到的相同错误消息有关。我正在使用Visual Studio(在Parallels中),并尝试在Xamarin Android Player实例上调试应用程序(该实例正在我的Mac上运行)。
我一直收到这个错误,并意识到在Build Output中显示了不同且更有帮助的错误消息,说明我不支持正确的架构。
进入Android项目属性-> Android选项->高级->并检查x86,最终使我成功部署到Xamarin Android Player。

2
ADB方法对我没有用。我不想恢复出厂设置或卸载应用程序,所以我通过更改包名来部署应用程序。
步骤如下:
  1. 右键单击您的Droid项目
  2. 选择属性
  3. 转到应用程序清单
  4. 更改包名称
  5. 重新部署您的项目 enter image description here
希望这可以帮助您。

1
今天我遇到了同样的错误,尝试在Xamarin Android Player上运行Xamarin Android应用程序。为了修复它,我需要在“支持的架构”部分勾选“x86”框。因此,您可能需要检查此部分。

这个部分在哪里? - Al Lelopath
1
找到了...在ProjectName.Native.Droid属性中 > Android选项 > 高级。已经被勾选了。 - Al Lelopath

1
在我的情况下,问题是两个活动都是启动器活动,所以我将其中一个设置为启动器活动。
您可以从AndroidManifest.xml文件中删除 <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> 或者从.cs活动文件属性中删除MainLauncher = true

只有这个对我起作用了。<intent-filter> <action android:name="com.google.android.c2dm.intent.RECEIVE" /> <action android:name="com.google.android.c2dm.intent.REGISTRATION" /> <!--<category android:name="com.booksrite.Booksrite" />--> </intent-filter> - Olorunfemi Davis

1

当设备上没有足够的内存时,我遇到了这个问题。在“成功”部署之后,该应用程序甚至从设置中的应用程序列表中消失了。通过adb删除时出现了失败,表明它未被安装。在VS2015的输出日志中,我收到了与OP相同的消息。最终,在清理了大约50-100 MB之后,它才起作用,尽管在应用程序设置中显示有500 MB可用空间。我尝试了不同的解决方案(通过adb删除、清理、构建然后部署),但只有清理才起作用。


请查看构建输出,以查看存储是否存在问题:>部署失败,因为出现内部错误:设备上没有足够的存储空间来存储包:/data/local/tmp/Mono.Android.Platform.ApiLevel_23.apk。释放一些空间,然后重试。 - cfl

1

adb uninstall解决了问题。奇怪的是,即使你运行列出所有已安装应用程序的命令,它也不会显示,但如果你使用你的包名(应该是你的项目名称或你分配的名称)运行卸载命令,你将获得成功的结果,这意味着它已被卸载,要检查是否运行相同的包名再次运行卸载命令,你将得到失败的命令。然后再次部署你的包应该就可以了。


0

如果您已经重新安装了所有内容,可能需要在VS中重新设置配置管理器。

在Visual Studio中:构建 -> 配置管理器 -> 在“部署”框中打勾。


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