Xamarin:无法找到" libmonodroid.so"模拟器错误

时间:2016-10-26 15:38:31

标签: android xamarin mono xamarin.android

我已经解决了这个问题几天了,还没有找到解决方案。

我一直在为我的模拟器使用Android 7.0 ARM (armeabi-v7a)图片。由于速度非常慢,我一直在尝试Android 7.0 Intel Atom (x86_64)使用HAXM,但在打开应用时出现以下错误。

  

AndroidRuntime:java.lang.UnsatisfiedLinkError:    dalvik.system.PathClassLoader [DexPathList [[zip file" / data / app / SiteToolsMobile。   机器人-1 / base.apk&#34],nativeLibraryDirectories = [/数据/应用/ SiteToolsMobile.Droid-1 /升   ib / x86_64,/ data / app / SiteToolsMobile.Droid-1 / base.apk!/ lib / x86_64,/ vendor / lib64   ,/ system / lib64]]]无法找到" libmonodroid.so"

可以在这里看到完整的logcat -

  

---------系统的开头   10-26 10:30:39.317 1534 1545 I ActivityManager:START u0 {act = android.intent.a   ction.MAIN cat = [android.intent.category.LAUNCHER] flg = 0x10200000 cmp = SiteToolsMo   bile.Droid / md5988fcde8450a201101ada904f480bb79.SplashActivity(有额外内容)}来自    uid 10007显示0   ---------主要的开始   10-26 10:30:39.360 2778 2778我是艺术:不迟到-Xcheck:jni(已读)   你好)   10-26 10:30:39.368 1534 1715 I ActivityManager:启动proc 2778:SiteToolsMobil   e.Droid / u0a56用于活动SiteToolsMobile.Droid / md5988fcde8450a201101ada904f480   bb79.SplashActivity   10-26 10:30:39.395 2778 2778 D AndroidRuntime:关闭VM   ---------崩溃的开始   10-26 10:30:39.395 2778 2778 E AndroidRuntime:致命异常:主要   10-26 10:30:39.395 2778 2778 E AndroidRuntime:进程:SiteToolsMobile.Droid,    PID:2778   10-26 10:30:39.395 2778 2778 E AndroidRuntime:java.lang.UnsatisfiedLinkError:    dalvik.system.PathClassLoader [DexPathList [[zip file" / data / app / SiteToolsMobile。   机器人-1 / base.apk&#34],nativeLibraryDirectories = [/数据/应用/ SiteToolsMobile.Droid-1 /升   ib / x86_64,/ data / app / SiteToolsMobile.Droid-1 / base.apk!/ lib / x86_64,/ vendor / lib64   ,/ system / lib64]]]无法找到" libmonodroid.so"   10-26 10:30:39.395 2778 2778 E AndroidRuntime:at java.lang.Runtime.loa   dLibrary(Runtime.java:367)   10-26 10:30:39.395 2778 2778 E AndroidRuntime:at java.lang.System.load   库(System.java:1076)   10-26 10:30:39.395 2778 2778 E AndroidRuntime:at mono.MonoPackageManag   er.LoadApplication(MonoPackageManager.java:34)   10-26 10:30:39.395 2778 2778 E AndroidRuntime:at mono.MonoRuntimeProvi   der.attachInfo(MonoRuntimeProvider.java:42)   10-26 10:30:39.395 2778 2778 E AndroidRuntime:在android.app.ActivityT   hread.installProvider(ActivityThread.java:5153)   10-26 10:30:39.395 2778 2778 E AndroidRuntime:在android.app.ActivityT   hread.installContentProviders(ActivityThread.java:4748)   10-26 10:30:39.395 2778 2778 E AndroidRuntime:在android.app.ActivityT   hread.handleBindApplication(ActivityThread.java:4688)   10-26 10:30:39.395 2778 2778 E AndroidRuntime:在android.app.ActivityT   hread.-wrap1(ActivityThread.java)   10-26 10:30:39.395 2778 2778 E AndroidRuntime:在android.app.ActivityT   hread $ H.handleMessage(ActivityThread.java:1405)   10-26 10:30:39.395 2778 2778 E AndroidRuntime:在android.os.Handler.di   spatchMessage(Handler.java:102)   10-26 10:30:39.395 2778 2778 E AndroidRuntime:在android.os.Looper.loo   P(Looper.java:148)   10-26 10:30:39.395 2778 2778 E AndroidRuntime:在android.app.ActivityT   hread.main(ActivityThread.java:5417)   10-26 10:30:39.395 2778 2778 E AndroidRuntime:at java.lang.reflect.Met   hod.invoke(原生方法)   10-26 10:30:39.395 2778 2778 E AndroidRuntime:at com.android.internal。   os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:726)   10-26 10:30:39.395 2778 2778 E AndroidRuntime:at com.android.internal。   os.ZygoteInit.main(ZygoteInit.java:616)   10-26 10:30:39.396 1534 2013 W ActivityManager:强制完成活动坐下   eToolsMobile.Droid / md5988fcde8450a201101ada904f480bb79.SplashActivity   10-26 10:30:39.699 1534 2013 I WindowManager:屏幕截图最多重试4个Toke   n {e7ebe9 ActivityRecord {6e79c70 u0 SiteToolsMobile.Droid / md5988fcde8450a201101ad   a904f480bb79.SplashActivity t6 f}} appWin = Window {a134507 u0 Starting SiteToolsMo   bile.Droid} drawState = 1   10-26 10:30:39.736 1534 2729 I OpenGLRenderer:初始化的EGL,版本1.4   10-26 10:30:40.201 1534 1548 W ActivityManager:Act的活动暂停超时   ivityRecord {6e79c70 u0 SiteToolsMobile.Droid / md5988fcde8450a201101ada904f480bb79   .SplashActivity t6 f}   10-26 10:30:43.005 2778 2778 I处理:发送信号。 PID:2778 SIG:9   10-26 10:30:43.016 1534 2729 E Surface:getSlotFromBufferLocked:unknown buff   呃:0x7fb4b733ab20   10-26 10:30:43.027 1534 2013 W InputMethodManagerService:窗口已经聚焦   ed,忽略焦点增益:com.android.internal.view.IInputMethodClient $ Stub $ Pr   oxy @ 67e1464 attribute = null,token = android.os.BinderProxy@f656261   10-26 10:30:43.053 1534 1716 I ActivityManager:处理SiteToolsMobile.Droid   (pid 2778)已经死了   10-26 10:30:43.207 1534 1553 W AppOps:完成op nesting under-run:uid 1   000 pkg android代码24次= 0持续时间= 0嵌套= 0

所以我知道它无法找到这个lib,但我不知道为什么它找不到这个lib而且我不知道如何修复它。

我尝试卸载应用,清理解决方案和重建。 我已经尝试了6.0以及7.1.1系统映像。

我还没有尝试重新安装xamarin或其他任何东西,因为那将在我可以使用的网络上剩余的一天。

为什么不存在libmonodroid.so以及如何解决?

修改

x86_64已启用。这是我的设备和高级Android选项的截图。

AVD设置 -

enter image description here

构建选项 -

enter image description here enter image description here enter image description here

6 个答案:

答案 0 :(得分:2)

在Android Build Advance选项中启用x86_64 ABI:

enter image description here

答案 1 :(得分:2)

我找到了解决方案!

除x86_64外,禁用ABI。

我还不知道哪个ABI导致了冲突。我想也许是X86。因为他总是部署一个MonoRuntime ......

答案 2 :(得分:1)

删除x86x86_x64以外的所有内容将禁用物理设备上的调试。

正确的解决方案是删除arm64-v8a,它会正常工作。

答案 3 :(得分:0)

最近安装了Xamarin并遇到了同样的问题,发现Android设备日志中的错误(Visual Studio:工具/ Android /设备日志...),这个解决方案确实解决了这个问题。我更进了一步,缩小了问题(至少在我的情况下),需要删除支持的架构:armeabi。其他支持的架构都没有引起这个问题。我正在运行Xamarin for Visual Studio 4.2.2.11,在Android模拟器下安装Android 7.1.1,使用Google API Intel Atom(x86_64)和Google的Nexus 5设备。

答案 4 :(得分:0)

在Visual Studio for Mac(8.7.1)上,最近出现了此问题,并且Xamarin有一个安装包.GitHub问题中已经提供了Android SDK。

请检查:https://github.com/xamarin/xamarin-android/issues/4983

答案 5 :(得分:0)

here所述,它再次开始发生,并且在Visual Studio的最新更新中已修复。因此,只需检查更新,然后安装它们即可。