我有一个简单的 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。