在MonoDevelop中,当针对模拟器编译和运行针对Android开发的应用程序时,应用程序编译然后立即在模拟器中崩溃并使用以下应用程序输出...
E/mono ( 225): The assembly mscorlib.dll was not found or could not be loaded.
E/mono ( 225): It should have been installed in the `/home/jon/Development/xamarin/mono/BUILD/armeabi/install/lib/mono/2.0/mscorlib.dll' directory.
请记住,我不是Jon,所以我甚至不知道它在哪里获得/ home / jon路径配置。虽然我已经在互联网上找到了其他类似但最终无关的搜索路径,所以我想这是其他开发机器上的路径。
mscorlib.dll确实在我的机器上。位于这里......
/Developer/MonoTouch/usr/lib/mono/2.1 /
在这里......
/Developer/MonoAndroid/usr/lib/mono/2.1 /
我已尝试定位各种Android SDK环境(目前为2.3,模拟器目前也在2.3 SDK环境下运行)。
我在Mac OSx 10.7.2上。使用最新版本的MonoDevelop,Mono和Mono for Android。我也安装了最新的MonoTouch,如果值得的话,iPhone应用程序可以正常编译。
我能找到最接近这个问题的提示是...... http://phonicuk.com/Forums/ViewThread.aspx?tid=401
我已尝试重新安装Mono和Mono for Android,但诚然没有尝试在重新安装之前完全卸载。我在文件中搜索/ home / jon路径,认为它必须是某个地方的配置,但无法在任何地方找到它。
我发现了这个...... Mono return error: mono mscorlib.dll was not found
除了一些其他类似的东西,但最终没有什么似乎是一个解决方案。
有什么想法吗?
更新:从jonp下面的答案中的建议看来,确实没有安装Mono.Android.DebugRuntime软件包。到目前为止,我已经尝试了几次MonoAndroid重新安装并尝试完全删除MonoAndroid。我想弄清楚是否有办法手动添加包,但我对此很新。
另一个更新:不知道我为什么不尝试这个,但我创建了一个HelloWorld MonoAndroid应用程序,它工作正常。对于那个编译,编译花了一些时间,我可以看到是否正在设置所需的包,因此必须存在特定解决方案的问题。
答案 0 :(得分:2)
在设备上安装应用的Debug版本时,会安装三个.apk
个文件:
Mono.Android.DebugRuntime
,其中包含libmonosgen-2.0.so
,mscorlib.dll
等Mono.Android.Plaltform.ApiLevel_N
,其中包含Mono.Android.dll
的API级N
。我的猜测是尚未安装Mono.Android.DebugRuntime
包。要检查这一点,请运行:
adb shell pm list packages | grep Mono.Android
我猜它不见了。 : - )
接下来,为什么会丢失?在MonoDevelop中运行应用程序时,将检查并安装所有必需的软件包。这似乎很奇怪,它不会。您的设备磁盘空间不足吗?
adb shell df /data
你是如何推出模拟器的?如果您在MonoDevelop中启动,则应该有足够的可用空间来安装所有上述软件包。但是,如果您自己启动它,则默认/data
大小为64MB,这不足以支持Debug构建环境。请从MonoDevelop启动模拟器并重新运行您的应用,或launch the emulator so that it has enough free space:
emulator -partition-size 512 -avd YOUR_AVD_NAME