c# - Android 应用程序调试几秒钟然后停止

标签 c# android visual-studio

我正在尝试在家里设置一个新的 Android 应用程序开发环境,但我遇到了一个令人头疼的问题。

首先,这是我的环境:

  1. Windows 10
  2. 安装了 Xamarin 平台的 Visual Studio Community 2015
  3. 测试设备为:G Pad 7.0 LTE
  4. Android 版本 5.0.2

我正在学习本教程:MSDN tutorial

当我去调试我的测试应用程序时,会发生以下情况。

  • 从 Visual Studio 中选择调试,将我的平板电脑作为目标
  • VS 部署到平板电脑
  • 应用程序在平板电脑上启动
  • 应用程序和调试 session 运行大约 5-10 秒。
  • 调试 session 结束,应用程序关闭

Visual Studio 中没有显示任何错误,当我打开 Android 日志记录时,信息量如此之大,以至于我真的不知道从哪里开始搜索问题。

另请注意,当我第一次设置应用程序时,根据教程,在平板电脑上调试工作正常。初始构建只是一个带有一些基本控件的模板。

从那时到它停止工作,我还在 Windows Phone 设备上添加并成功测试了一个 Windows Phone 项目。

当我到达修改项目的部分时,问题就开始了。我想也许我所做的代码更改导致了这个问题,所以我尝试了另一个空白应用程序,但那个空白应用程序现在也崩溃了。

当我将教程应用程序部署到模拟器时,它会立即崩溃,但当我部署空白应用程序时,它不会崩溃。

我还尝试将平板电脑恢复为出厂默认设置并再次测试。相同场景:空白应用和教程应用运行几秒钟,调试停止,应用关闭。

关于我正在查看的问题类型的任何线索?

最佳答案

解决方案

  1. 清理您的项目(右键单击项目并选择清理)
  2. 转到您的构建文件夹。可能在您的 Android 项目的根文件夹中,名为“obj”。当您遇到此行为(调试或发布)时,请删除您拥有的任何一个构建。

目录路径

./AndroidProject/obj/Debug
./AndroidProject/obj/Release
  1. 重新启动 Visual Studio
  2. 再次构建并运行,它应该可以正常工作,因为 md5 哈希现在再次匹配。

我之前还从设备上卸载了该应用程序并重新启动了它,我不知道是否还需要这样做,因为该应用程序现在正被更新的 Xamarin 版本“重新安装”。

adb uninstall com.your.domain

故事和背景信息

在运行 Android 5.0 的设备上遇到了同样的问题。

基本上,应用程序只是在没有任何提示的情况下停止。 当我现在重新启动手机时,日志被以下行扩展(一次):

Device could not find component named: *com.your.domain*/{*md5hash*}.*{Activity}

事实证明,Andrpod 5.0 实现了哈希机制:

With the 5.0 release, the default package names for Android Callable Wrappers will be based on the MD5SUM of the assembly-qualified name of the type being exported. This allows the same fully-qualified name to be provided from two different assemblies and not get a packaging error. See this for further information Xamarin.Android 5.1

因此,如果 md5-hash 现在不时发生变化,那么对您的项目进行简单的清理是不够的。

关于c# - Android 应用程序调试几秒钟然后停止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36971519/

相关文章:

c# - 在 C# 中替换字符串中的符号

android - lateinit 属性尚未初始化我找不到初始化它的方法

java - 如何在android studio中单击时使复选框可编辑

visual-studio - VS2010 经典 ASP 支持

c# - 使用语句和添加引用有什么区别?

c# - 更改组框组标题名称的颜色

c# - Azure 连接设置中的 Web API 因大请求而失败

c# - SQL CE native 异常0xc0000005

c# - 什么是复制构造函数以及何时应在 C# 中使用它?

android - 如何使用触摸屏同时对两个 SeekBar 实例(或任何其他控件,例如 Button)进行操作?