我的项目正处于测试阶段,我已经在所有模拟器上尝试了它,在一个物理设备上调试OK但在另一个物理设备上输出窗口中打印了以下消息,但是失败了:
10-29 09:43:18.376 W/Mono (16624): The following assembly referenced from Java.Interop.dll could not be loaded:
10-29 09:43:18.376 W/Mono (16624): Assembly: System.Runtime (assemblyref_index=1)
10-29 09:43:18.376 W/Mono (16624): Version: 4.0.0.0
10-29 09:43:18.376 W/Mono (16624): Public Key: b03f5f7f11d50a3a
10-29 09:43:18.376 W/Mono (16624): The assembly was not found in the Global Assembly Cache, a path listed in the MONO_PATH environment variable, or in the location of the executing assembly (/).
10-29 09:43:18.376 D/Mono (16624): Failed to load assembly Java.Interop[0x6c0a0040]
10-29 09:43:18.376 W/Mono (16624): Could not load file or assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' or one of its dependencies.
10-29 09:43:18.376 E/mono-rt (16624): Stacktrace:
10-29 09:43:18.376 E/mono-rt (16624):
10-29 09:43:18.376 E/mono-rt (16624):
10-29 09:43:18.376 E/mono-rt (16624): Attempting native Android stacktrace:
10-29 09:43:18.376 E/mono-rt (16624):
10-29 09:43:18.385 E/mono-rt (16624): at ???+0 [0x63ee7667]
10-29 09:43:18.386 E/mono-rt (16624): at mono_class_get_field_from_name+31 [0x63ee773f]
10-29 09:43:18.387 E/mono-rt (16624): at ???+31 [0x7355c91b]
10-29 09:43:18.387 E/mono-rt (16624): at ???+31 [0x7355cb5c]
10-29 09:43:18.387 E/mono-rt (16624): at Java_mono_android_Runtime_init+2099 [0x7355efbb]
10-29 09:43:18.387 E/mono-rt (16624): at ???+2099 [0x64783962]
10-29 09:43:18.388 E/mono-rt (16624):
10-29 09:43:18.388 E/mono-rt (16624): =================================================================
10-29 09:43:18.388 E/mono-rt (16624): Got a SIGSEGV while executing native code. This usually indicates
10-29 09:43:18.388 E/mono-rt (16624): a fatal error in the mono runtime or one of the native libraries
10-29 09:43:18.388 E/mono-rt (16624): used by your application.
10-29 09:43:18.388 E/mono-rt (16624): =================================================================
问题肯定不在我的代码中(执行没有机会在我的代码中的任何地方跳转,并且代码在运行Kitkat 4.4的另一个物理设备中正常工作)。我正在测试的设备运行Lollipop 5.0(因此API肯定会支持Kitkat支持的功能)。
我没有尝试创建已签名的APK并在设备上安装最终版本,但应首先进行调试。我也不确定这是否与ADB接口驱动程序失败的问题有关? (虽然设备似乎连接正常,其名称显示在Visual Studio中)。
我已经尝试谷歌搜索这个问题,但没有找到任何结果(只有一些结果)。根据消息,看起来应该引用这个System.Runtime
? (奇怪的是,我的项目中没有引用它,但它在所有模拟器和一个物理设备中运行良好,同时建筑总是成功的)。我已经尝试在我的项目中找到要添加作为参考的程序集,但也找不到任何合适的程序集(来自参考管理器窗口)。
我希望这里有人能够找出帮助我的错误。我测试的设备可能被选为我们客户的运行设备,这一点非常重要。谢谢你的帮助!
更新 :
我尝试过多挖掘一下,可以确定ADB接口驱动程序正常工作(某些应用程序可以构建和调试好)。然而,即使 Hello world 应用程序(在Visual Studio中创建新的空白Android项目时自动生成)也无法调试,这非常非常奇怪(与我在上面发布的相同的例外)。所以Xamarin Android在这里显然有问题。