Xamarin - Android - Visual Studio - 应用程序无法启动
Posted
技术标签:
【中文标题】Xamarin - Android - Visual Studio - 应用程序无法启动【英文标题】:Xamarin - Android - Visual Studio - The application could not be started 【发布时间】:2016-03-21 13:31:58 【问题描述】:我正在使用 Visual Studio 2012 中的 Xamarin 开发一个 android 项目。我最近从 HDD 升级到 SSD,因此我重新安装了 Windows 和我的所有程序。
克隆我的 git 存储库并尝试在我的设备上运行应用程序后,我无法让它运行。我能够启动一个新的 hello world 项目并让它运行,但我无法让这个项目运行。
这就是错误所说的:
应用程序无法启动。确保应用程序已安装到目标设备并具有可启动的活动 (MainLauncher = true)。
此外,检查 Build->Configuration Manager 以确保此项目设置为针对此配置进行部署。
我已经搜索了此问题的解决方案,但找不到任何可行的方法。
【问题讨论】:
【参考方案1】:我解决了这个问题。不知何故,该应用程序仍然存在于我的设备上,即使它没有出现在我的应用程序中,我需要将其删除。
解决方案是找到我通过电子邮件发送的旧 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>
。如果您的应用程序有任何残留物,这应该摆脱它们。
【讨论】:
这为我修复了它,尽管我可以通过转到设置 -> 应用程序 -> 全部来卸载它,即使应用程序抽屉中没有启动器,它仍然存在。跨度> 设置 > 应用程序管理器 > NameOfYourApplication > 卸载 谢谢!简短:使用 adb 终端方法。在 Visual Studio 中很容易到达那里:TOOLS-->Android-->“Android Adb 命令提示符...”【参考方案2】:重命名应用程序名称。
添加了包名。
应用程序。开始在模拟器上工作,再次重命名应用程序,应用程序。继续运行。
注意:重置设备,卸载应用。设置中的相关运行时等对我不起作用。
希望这对某人有所帮助。
【讨论】:
谢谢!我重命名了应用程序然后它工作了。然后我把它重命名回来,它又开始在我的手机上工作了。 这对我也有帮助,包名不知何故丢失了,以前就在那里..【参考方案3】:从 adb shell 运行这个命令为我解决了这个问题:
adb shell pm uninstall -k com.packagename
从 Visual Studio 工具 -> Android -> Android Adb 命令提示符访问 adb shell。
非常有趣的错误,似乎 Visual Studio 无法完全卸载以前的版本。
【讨论】:
【参考方案4】:显然,OP 发现了他们的问题,但我仍然想发布与我遇到的问题相关的答案,并带有相同的错误消息。我正在使用 Visual Studio(在 Parallels 中)并尝试在 Xamarin Android Player 实例(在我的 Mac 上运行)上调试应用程序。
我不断收到此错误,并意识到构建输出中显示了一条不同的、更有帮助的错误消息,指出我不支持正确的架构。
进入 Android 项目属性 -> Android 选项 -> 高级 -> 并检查 x86
最终允许我成功部署到 Xamarin Android 播放器。
【讨论】:
【参考方案5】:亚行方法对我不起作用。 我不想将手机恢复出厂设置,也不想卸载我的应用程序,所以我设法通过更改包来部署。
-
右键单击您的 Droid 项目
选择属性
转到应用程序清单
更改包名
重新部署您的项目
希望对你有帮助
【讨论】:
【参考方案6】:我今天遇到了同样的错误,试图在 Xamarin Android Player 上运行 Xamarin Android-app。要修复它,我需要检查“支持的架构”部分的“x86”框。因此,您可能需要查看此部分。
【讨论】:
这个部分在哪里? 找到它... ProjectName.Native.Droid 属性 > Android 选项 > 高级。已经检查过了。【参考方案7】:当设备上没有足够的内存时,我遇到了这个问题。在“成功”部署后,即使在“设置”中的应用列表中也缺少该应用。通过 adb 删除给了我失败,表明它没有安装。在 VS2015 的输出日志中,我收到了与 OP 相同的消息。最后,在我清理了大约 50-100 MB 之后,它就起作用了,尽管在应用程序设置中它显示我有 500 MB 可用。我尝试了不同的解决方案(通过 adb 删除、清理、构建然后部署),但只有清理工作。
【讨论】:
查看构建输出,看看存储是否有问题: >部署失败,因为内部错误:设备上没有足够的存储空间来存储包:/data/local /tmp/Mono.Android.Platform.ApiLevel_23.apk。请释放一些空间,然后重试。【参考方案8】:adb 卸载成功了。奇怪的是,即使您运行命令列出所有已安装的应用程序,它也不会显示,但是如果您使用您的包名称运行卸载命令,该名称应该是您的项目名称或您分配的名称,您将获得成功结果,这意味着它已被卸载,并检查是否使用相同的包名再次运行卸载命令,你将获得失败命令。然后再次部署你的包应该可以工作
【讨论】:
【参考方案9】:在我的情况下,两个活动是 Launcher 活动,所以我制作了其中一个 Launcher 活动。
您可以删除
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
来自 AndroidManifest.xml 文件或
MainLauncher = true
来自.cs Activity 文件属性
【讨论】:
只有这对我有用。如果您重新安装了所有内容,您可能需要在 VS 中备份配置管理器。
在 Visual Studio 中:构建 -> 配置管理器 -> 勾选“部署”框。
【讨论】:
【参考方案11】:我已经设法通过从模拟器中擦除用户数据来解决它。
在 AVD Manager 中,当您启动模拟器时,选中“擦除用户数据”,您的模拟设备就会像新设备一样运行。
更新到 Android SDK Tools 25.1.3 后出现问题。
【讨论】:
【参考方案12】:最初我无法让它工作。尝试删除所有内容(Mono 运行时、应用程序等),但无济于事。
有效的是重命名我的包,这对我来说很好,因为我还没有发布我的 apk。一些幽灵版本显然仍然存储在我的设备上。
【讨论】:
【参考方案13】:重命名应用程序名称和包名称(转到清单设置)有助于解决此问题
【讨论】:
更改包名并不能摆脱之前安装的应用程序。它只是在您的设备上创建一个全新的应用程序。如果这是一个存在于 Google Play 商店中的应用程序,那么它并不是一个真正可接受的解决方案。【参考方案14】:唯一能帮助我解决这个问题的方法如下:
在 Xamarin Android Studio 主页(显示所有设备)中,单击“三点”按钮,然后单击恢复出厂设置。或
安装新设备并在那里部署您的应用。【讨论】:
我强烈建议不要恢复出厂设置,因为它会删除您手机上的大部分内容。仅当所有其他卸载应用程序的方法都已用尽时,才应作为绝对的最后手段。 @JaredPrice 是的,我同意,在我的情况下,我没有在那个模拟器上保存数据,所以这不是问题。【参考方案15】:每当我遇到这个问题时,我都会发布应用程序并使用手动安装
adb install "<path to apk file>"
在 Android Adb 命令提示符中。
希望尽快修复,根据 https://github.com/xamarin/xamarin-android/issues/3727
【讨论】:
【参考方案16】:今天发生在我身上,在从 Git 更新项目并在 Android 模拟器中运行之后。从模拟器中卸载应用程序,在 VS 中执行清理和重建并再次安装应用程序有帮助。
【讨论】:
以上是关于Xamarin - Android - Visual Studio - 应用程序无法启动的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin.forms(或)xamarin.ios/xamarin.android(或)本机
Xamarin.Forms 是 Xamarin.Android、Xamarin.IoS 和 Xamarin.Win 的简单总和吗?
xamarin android开发 两个按钮 怎么放在同一排上
抽屉布局在 Xamarin.Android.Support.Core.UI 和 Xamarin.Android.Support.V4 中都存在