Xamarin Android:应用程序崩溃(缺少 libmonosgen-2.0.so)

5

Xamarin Studio 5.10.3(构建版本27)

设备:小米4c(Android 5.1)

我有一个基本的Android应用程序模板,我正在尝试调试此应用程序。但是它崩溃了...

已安装的包:

Mono.Android.DebugRuntime
Mono.Android.Platform.ApiLevel_19

我尝试过:

adb uninstall Mono.Android.DebugRuntime

然后使用集成开发环境(IDE)或以下命令安装应用程序:

MSBuild /t:Install YourProject.csproj

但是没有成功。

这里有一份logcat:

I/ActivityManager( 1086): START u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.rinart73.niceapp/md579058f2ed4a300dd704bd6ac0c3e80e0.MainActivity bnds=[571,978][763,1170]} from uid 10020 on display 0
V/WindowManager( 1086): addAppToken: AppWindowToken{2f39fa16 token=Token{4cf8331 ActivityRecord{3c2d63d8 u0 com.rinart73.niceapp/md579058f2ed4a300dd704bd6ac0c3e80e0.MainActivity t4972}}} to stack=1 task=4972 at 0
V/WindowManager( 1086): Adding window Window{3b68216d u0 Starting com.rinart73.niceapp} at 10 of 19 (after Window{391a3ce7 u0 org.coolreader/org.coolreader.CoolReader})
I/ActivityManager( 1086): Start proc 18762:com.rinart73.niceapp/u0a250 for activity com.rinart73.niceapp/md579058f2ed4a300dd704bd6ac0c3e80e0.MainActivity
D/WhetstoneService( 5319): set foreground process size 1  pid:18762pacakgeName:com.rinart73.niceapp
W/WhetstoneService( 5319): {WhetstonePackageInfo#PacakgeName:com.rinart73.niceappFlag:1073742848 [,SOFT_RESET] Type:0[] }not support ZRAM
D/PowerKeeperEventLogManager( 5625): notifyForegroundCompomentChanged ComponentInfo{com.rinart73.niceapp/md579058f2ed4a300dd704bd6ac0c3e80e0.MainActivity}
W/monodroid(18762): Using override path: /data/data/com.rinart73.niceapp/files/.override
W/monodroid(18762): Using override path: /storage/emulated/0/Android/data/com.rinart73.niceapp/files/.override
W/monodroid(18762): Trying to load sgen from: /data/data/com.rinart73.niceapp/files/.override/libmonosgen-2.0.so
W/monodroid(18762): Trying to load sgen from: /storage/emulated/0/Android/data/com.rinart73.niceapp/files/.override/libmonosgen-2.0.so
W/monodroid(18762): Trying to load sgen from: /data/data/com.rinart73.niceapp/lib/libmonosgen-2.0.so
F/monodroid(18762): cannot find libmonosgen-2.0.so in override_dir: /data/data/com.rinart73.niceapp/files/.override, app_libdir: /data/data/com.rinart73.niceapp/lib nor in previously printed locations.
I/ActivityManager( 1086): Process com.rinart73.niceapp (pid 18762) has died
W/WhetstoneService( 5319): {WhetstonePackageInfo#PacakgeName:com.rinart73.niceappFlag:1073742848 [,SOFT_RESET] Type:0[] }not support ZRAM
I/ActivityManager( 1086): Start proc 18797:com.rinart73.niceapp/u0a250 for activity com.rinart73.niceapp/md579058f2ed4a300dd704bd6ac0c3e80e0.MainActivity
D/PowerKeeperEventLogManager( 5625): notifyForegroundCompomentChanged ComponentInfo{com.rinart73.niceapp/md579058f2ed4a300dd704bd6ac0c3e80e0.MainActivity}
W/monodroid(18797): Using override path: /data/data/com.rinart73.niceapp/files/.override
W/monodroid(18797): Using override path: /storage/emulated/0/Android/data/com.rinart73.niceapp/files/.override
W/monodroid(18797): Trying to load sgen from: /data/data/com.rinart73.niceapp/files/.override/libmonosgen-2.0.so
W/monodroid(18797): Trying to load sgen from: /storage/emulated/0/Android/data/com.rinart73.niceapp/files/.override/libmonosgen-2.0.so
W/monodroid(18797): Trying to load sgen from: /data/data/com.rinart73.niceapp/lib/libmonosgen-2.0.so
F/monodroid(18797): cannot find libmonosgen-2.0.so in override_dir: /data/data/com.rinart73.niceapp/files/.override, app_libdir: /data/data/com.rinart73.niceapp/lib nor in previously printed locations.
I/ActivityManager( 1086): Process com.rinart73.niceapp (pid 18797) has died
W/WhetstoneService( 5319): {WhetstonePackageInfo#PacakgeName:com.rinart73.niceappFlag:1073742848 [,SOFT_RESET] Type:0[] }not support ZRAM
I/ActivityManager( 1086): Start proc 18833:com.rinart73.niceapp/u0a250 for activity com.rinart73.niceapp/md579058f2ed4a300dd704bd6ac0c3e80e0.MainActivity
D/PowerKeeperEventLogManager( 5625): notifyForegroundCompomentChanged ComponentInfo{com.rinart73.niceapp/md579058f2ed4a300dd704bd6ac0c3e80e0.MainActivity}
W/monodroid(18833): Using override path: /data/data/com.rinart73.niceapp/files/.override
W/monodroid(18833): Using override path: /storage/emulated/0/Android/data/com.rinart73.niceapp/files/.override
W/monodroid(18833): Trying to load sgen from: /data/data/com.rinart73.niceapp/files/.override/libmonosgen-2.0.so
W/monodroid(18833): Trying to load sgen from: /storage/emulated/0/Android/data/com.rinart73.niceapp/files/.override/libmonosgen-2.0.so
W/monodroid(18833): Trying to load sgen from: /data/data/com.rinart73.niceapp/lib/libmonosgen-2.0.so
F/monodroid(18833): cannot find libmonosgen-2.0.so in override_dir: /data/data/com.rinart73.niceapp/files/.override, app_libdir: /data/data/com.rinart73.niceapp/lib nor in previously printed locations.
I/ActivityManager( 1086): Process com.rinart73.niceapp (pid 18833) has died
W/ActivityManager( 1086): Force removing ActivityRecord{3c2d63d8 u0 com.rinart73.niceapp/md579058f2ed4a300dd704bd6ac0c3e80e0.MainActivity t4972}: app died, no saved state

经过Jon Douglas建议后的Logcat:

W/monodroid(13078): Trying to load sgen from: /data/data/com.rinart73.niceapp/files/.__override__/libmonosgen-2.0.so
W/monodroid(13078): Trying to load sgen from: /storage/emulated/0/Android/data/com.rinart73.niceapp/files/.__override__/libmonosgen-2.0.so
W/monodroid(13078): Trying to load sgen from: /data/data/com.rinart73.niceapp/lib/libmonosgen-2.0.so
W/monodroid(13078): Trying to load sgen from: /data/data/Mono.Android.DebugRuntime/lib/libmonosgen-64bit-2.0.so
W/monodroid(13078): Trying to load sgen from: /system/lib64/libmonosgen-2.0.so
F/monodroid(13078): cannot find libmonosgen-2.0.so in override_dir: /data/data/com.rinart73.niceapp/files/.__override__, app_libdir: /data/data/com.rinart73.niceapp/lib nor in previously printed locations.
W/monodroid(13112): Trying to load sgen from: /data/data/com.rinart73.niceapp/files/.__override__/libmonosgen-2.0.so
W/monodroid(13112): Trying to load sgen from: /storage/emulated/0/Android/data/com.rinart73.niceapp/files/.__override__/libmonosgen-2.0.so
W/monodroid(13112): Trying to load sgen from: /data/data/com.rinart73.niceapp/lib/libmonosgen-2.0.so
W/monodroid(13112): Trying to load sgen from: /data/data/Mono.Android.DebugRuntime/lib/libmonosgen-64bit-2.0.so
W/monodroid(13112): Trying to load sgen from: /system/lib64/libmonosgen-2.0.so
F/monodroid(13112): cannot find libmonosgen-2.0.so in override_dir: /data/data/com.rinart73.niceapp/files/.__override__, app_libdir: /data/data/com.rinart73.niceapp/lib nor in previously printed locations.
W/monodroid(13151): Trying to load sgen from: /data/data/com.rinart73.niceapp/files/.__override__/libmonosgen-2.0.so
W/monodroid(13151): Trying to load sgen from: /storage/emulated/0/Android/data/com.rinart73.niceapp/files/.__override__/libmonosgen-2.0.so
W/monodroid(13151): Trying to load sgen from: /data/data/com.rinart73.niceapp/lib/libmonosgen-2.0.so
W/monodroid(13151): Trying to load sgen from: /data/data/Mono.Android.DebugRuntime/lib/libmonosgen-64bit-2.0.so
W/monodroid(13151): Trying to load sgen from: /system/lib64/libmonosgen-2.0.so
F/monodroid(13151): cannot find libmonosgen-2.0.so in override_dir: /data/data/com.rinart73.niceapp/files/.__override__, app_libdir: /data/data/com.rinart73.niceapp/lib nor in previously printed locations.

你的 armeabi 文件夹中使用了 libmonosgen-2.0.so 吗? - Saveen
我只有一个符号链接到 /data/app-libs/(空文件夹)?我能否编译一个发布版本并将 libmonosgen 从中移动到 /data/app-libs?然后像往常一样进行调试?或者调试情况下会有所不同? - user64675
我建议通过 adb uninstall <package name>(应用程序,运行时)删除所有内容。然后,您应该清理项目并删除 obj/bin 文件夹。最后,使用 IDE 部署您的调试构建,并确保相应的应用程序在 adb logcat 中搜索到 libmonosgen-2.0 库。 - Jon Douglas
不行,它不起作用。附上一个新的Logcat。 - user64675
@user64675,你找到解决方案了吗? - xtremebytes
1
尝试在您的.csproj文件中将属性<AndroidUseSharedRuntime>设置为False。 - DmitryArc
2个回答

6
我的解决方法是,在.csproj文件的属性窗口中的Android选项部分中取消勾选"使用共享运行时"。
我猜测这个错误发生在之前安装过其他Xamarin调试应用程序的设备上。如果是这种情况,并且选择了"使用共享运行时",那么已经在设备上安装的Xamarin运行时版本可能与应用程序所需的版本不兼容。
我遇到了同样的问题,只不过我的应用程序在一个手机上可以正常工作,但在另一个手机上启动后会崩溃。可以正常工作的手机是一个干净的设备,没有其他Xamarin调试应用程序,因此第一次必须安装正确的运行时。而出现崩溃的设备则安装有其他旧版应用程序。
希望这可以帮助到您。

0

我知道这是一个比较旧的问题,但我在更新Android 9到10时刚遇到了它。我必须将Android包格式从"apk"更改为"bundle"。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接