2

我有一个简单的 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 级别 17,并使用 Intel Atom x86 CPU/ABI。我为 480x800 设备提供了 AVD 允许的尽可能多的内存(768 MB - 高于此值并且它无法启动)。

我知道其他人之前报告过类似的错误,我已经尝试了那里的建议(关闭“快速部署”并重新部署,增加设备上的可用空间)但得到了同样的错误。它始终适用于 320x480,但从不适用于更大屏幕的设备。

最后一点——我使用的是免费版的 MonoDroid。

4

1 回答 1

1

万一有人遇到同样的错误, Xamarin 网站上有更多详细的解决方案。简而言之,当我卸载调试运行时然后重新安装我的游戏时,错误就会消失:

$ adb uninstall Mono.Android.DebugRuntime
$ MSBuild /t:Install YourProject.csproj

(或者只是从 IDE 安装游戏)

于 2013-03-05T21:50:34.873 回答