我有一个简单的Android MonoGame项目,使用MonoDevelop构建。它是XNA示例游戏的一个端口,它在模拟器中的一个设备上运行良好,但在另一个设备上,它在部署时给我这个错误:
shared runtime initialization error: Cannot load library: load_library(linker.cpp:745):
library "/data/data/Mono.Android.DebugRuntime/lib/libmonosgen-2.0.so" not found
错误发生在设备上出现闪屏之后。
代码不会改变,它可以在一台设备上运行,但不能在另一台设备上运行。设备之间的主要区别在于屏幕分辨率。 320x480分辨率设备很好,但480x800分辨率设备会出错。这两款设备均在AVD中定义为针对Android 4.2 API Level 17,并使用Intel Atom x86 CPU / ABI。我给了480x800设备尽可能多的内存,因为AVD会让我(768 MB - 高于那个并且它没有启动)。
之前我认识其他人reported a similar error,我在那里尝试了建议(关闭“快速部署”并重新部署,增加了设备上的可用空间)但得到了同样的错误。它始终适用于320x480但从不使用更大的屏幕设备。
最后的注意事项 - 我使用的是MonoDroid的免费版本。
答案 0 :(得分:1)
如果有人遇到同样的错误,解决方案on the Xamarin site会有更多细节。简而言之,当我卸载调试运行时然后重新安装我的游戏时,错误就会消失:
$ adb uninstall Mono.Android.DebugRuntime
$ MSBuild /t:Install YourProject.csproj
(或者只是从IDE安装游戏)