我正在尝试在家里设置一个新的 Android 应用程序开发环境,但我遇到了一个令人头疼的问题。
首先,这是我的环境:
- Windows 10
- 安装了 Xamarin 平台的 Visual Studio Community 2015
- 测试设备为:G Pad 7.0 LTE
- Android 版本 5.0.2
我正在学习本教程:MSDN tutorial
当我去调试我的测试应用程序时,会发生以下情况。
- 从 Visual Studio 中选择调试,将我的平板电脑作为目标
- VS 部署到平板电脑
- 应用程序在平板电脑上启动
- 应用程序和调试 session 运行大约 5-10 秒。
- 调试 session 结束,应用程序关闭
Visual Studio 中没有显示任何错误,当我打开 Android 日志记录时,信息量如此之大,以至于我真的不知道从哪里开始搜索问题。
另请注意,当我第一次设置应用程序时,根据教程,在平板电脑上调试工作正常。初始构建只是一个带有一些基本控件的模板。
从那时到它停止工作,我还在 Windows Phone 设备上添加并成功测试了一个 Windows Phone 项目。
当我到达修改项目的部分时,问题就开始了。我想也许我所做的代码更改导致了这个问题,所以我尝试了另一个空白应用程序,但那个空白应用程序现在也崩溃了。
当我将教程应用程序部署到模拟器时,它会立即崩溃,但当我部署空白应用程序时,它不会崩溃。
我还尝试将平板电脑恢复为出厂默认设置并再次测试。相同场景:空白应用和教程应用运行几秒钟,调试停止,应用关闭。
关于我正在查看的问题类型的任何线索?
最佳答案
解决方案
- 清理您的项目(右键单击项目并选择清理)
- 转到您的构建文件夹。可能在您的 Android 项目的根文件夹中,名为“obj”。当您遇到此行为(调试或发布)时,请删除您拥有的任何一个构建。
目录路径
./AndroidProject/obj/Debug
./AndroidProject/obj/Release
- 重新启动 Visual Studio
- 再次构建并运行,它应该可以正常工作,因为 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/