Xamarin:找不到 "libmonodroid.so" 模拟器错误
Xamarin: Couldn't find "libmonodroid.so" emulator error
我已经遇到这个问题好几天了,还没有找到解决办法。
我一直在为我的模拟器使用 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.
Droid-1/base.apk"],nativeLibraryDirectories=[/data/app/SiteToolsMobile.Droid-1/l
ib/x86_64, /data/app/SiteToolsMobile.Droid-1/base.apk!/lib/x86_64, /vendor/lib64
, /system/lib64]]] couldn't find "libmonodroid.so"
完整的logcat可以看这里-
--------- beginning of system
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 (has extras)} from
uid 10007 on display 0
--------- beginning of main
10-26 10:30:39.360 2778 2778 I art : Not late-enabling -Xcheck:jni (alread
y on)
10-26 10:30:39.368 1534 1715 I ActivityManager: Start proc 2778:SiteToolsMobil
e.Droid/u0a56 for activity SiteToolsMobile.Droid/md5988fcde8450a201101ada904f480
bb79.SplashActivity
10-26 10:30:39.395 2778 2778 D AndroidRuntime: Shutting down VM
--------- beginning of crash
10-26 10:30:39.395 2778 2778 E AndroidRuntime: FATAL EXCEPTION: main
10-26 10:30:39.395 2778 2778 E AndroidRuntime: Process: 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.
Droid-1/base.apk"],nativeLibraryDirectories=[/data/app/SiteToolsMobile.Droid-1/l
ib/x86_64, /data/app/SiteToolsMobile.Droid-1/base.apk!/lib/x86_64, /vendor/lib64
, /system/lib64]]] couldn't find "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
Library(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: at android.app.ActivityT
hread.installProvider(ActivityThread.java:5153)
10-26 10:30:39.395 2778 2778 E AndroidRuntime: at android.app.ActivityT
hread.installContentProviders(ActivityThread.java:4748)
10-26 10:30:39.395 2778 2778 E AndroidRuntime: at android.app.ActivityT
hread.handleBindApplication(ActivityThread.java:4688)
10-26 10:30:39.395 2778 2778 E AndroidRuntime: at android.app.ActivityT
hread.-wrap1(ActivityThread.java)
10-26 10:30:39.395 2778 2778 E AndroidRuntime: at android.app.ActivityT
hread$H.handleMessage(ActivityThread.java:1405)
10-26 10:30:39.395 2778 2778 E AndroidRuntime: at android.os.Handler.di
spatchMessage(Handler.java:102)
10-26 10:30:39.395 2778 2778 E AndroidRuntime: at android.os.Looper.loo
p(Looper.java:148)
10-26 10:30:39.395 2778 2778 E AndroidRuntime: at 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(Native Method)
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: Force finishing activity Sit
eToolsMobile.Droid/md5988fcde8450a201101ada904f480bb79.SplashActivity
10-26 10:30:39.699 1534 2013 I WindowManager: Screenshot max retries 4 of 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: Initialized EGL, version 1.4
10-26 10:30:40.201 1534 1548 W ActivityManager: Activity pause timeout for Act
ivityRecord{6e79c70 u0 SiteToolsMobile.Droid/md5988fcde8450a201101ada904f480bb79
.SplashActivity t6 f}
10-26 10:30:43.005 2778 2778 I Process : Sending signal. PID: 2778 SIG: 9
10-26 10:30:43.016 1534 2729 E Surface : getSlotFromBufferLocked: unknown buff
er: 0x7fb4b733ab20
10-26 10:30:43.027 1534 2013 W InputMethodManagerService: Window already focus
ed, ignoring focus gain of: 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: Process SiteToolsMobile.Droid
(pid 2778) has died
10-26 10:30:43.207 1534 1553 W AppOps : Finishing op nesting under-run: uid 1
000 pkg android code 24 time=0 duration=0 nesting=0
所以我知道它找不到这个库,但我不知道为什么它找不到这个库,我不知道如何修复它。
我试过卸载应用程序、清理解决方案并重建。
我已经尝试了 6.0
以及 7.1.1
系统映像。
我没有尝试重新安装 xamarin 或其他任何东西,因为这会占用我可用网络上的剩余时间。
为什么 libmonodroid.so
不存在,我该如何解决?
编辑
x86_64 已启用。这是我的设备和高级 android 选项的屏幕截图。
AVD 设置-
构建选项-
在 Android Build Advance 选项中启用 x86_64
ABI:
我找到了解决办法!
禁用所有 ABI,除了 x86_64。
我还不知道哪个 ABI 导致了冲突。我想也许是 X86。因为他总是部署一个MonoRuntime...
最近安装 Xamarin 和 运行 遇到同样的问题,在 Android 设备日志中发现错误(Visual Studio:Tools/Android/Device 日志...)和这个解决方案确实解决了问题。我更进一步,将问题(至少在我的情况下)缩小到需要删除受支持的架构:armeabi。 None 的其他受支持架构导致了该问题。我是 运行 Xamarin for Visual Studio 4.2.2.11,Android 7.1.1 在 Android 模拟器下使用 Google APIs Intel Atom (x86_64) 和 Google 的 Nexus 5 设备。
删除除 x86
和 x86_x64
之外的所有内容将禁用物理设备上的调试。
正确的解决方案是删除 arm64-v8a
,它将正常工作。
On, Visual Studio for Mac (8.7.1) 这个问题是最近出现的 Xamarin.Android SDK 的安装包已经在 GitHub问题。
如前所述 here,它又开始发生并在 Visual Studio 的最新更新中得到修复。所以只需检查更新,然后安装它们。
我已经遇到这个问题好几天了,还没有找到解决办法。
我一直在为我的模拟器使用 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. Droid-1/base.apk"],nativeLibraryDirectories=[/data/app/SiteToolsMobile.Droid-1/l ib/x86_64, /data/app/SiteToolsMobile.Droid-1/base.apk!/lib/x86_64, /vendor/lib64 , /system/lib64]]] couldn't find "libmonodroid.so"
完整的logcat可以看这里-
--------- beginning of system 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 (has extras)} from uid 10007 on display 0 --------- beginning of main 10-26 10:30:39.360 2778 2778 I art : Not late-enabling -Xcheck:jni (alread y on) 10-26 10:30:39.368 1534 1715 I ActivityManager: Start proc 2778:SiteToolsMobil e.Droid/u0a56 for activity SiteToolsMobile.Droid/md5988fcde8450a201101ada904f480 bb79.SplashActivity 10-26 10:30:39.395 2778 2778 D AndroidRuntime: Shutting down VM --------- beginning of crash 10-26 10:30:39.395 2778 2778 E AndroidRuntime: FATAL EXCEPTION: main 10-26 10:30:39.395 2778 2778 E AndroidRuntime: Process: 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. Droid-1/base.apk"],nativeLibraryDirectories=[/data/app/SiteToolsMobile.Droid-1/l ib/x86_64, /data/app/SiteToolsMobile.Droid-1/base.apk!/lib/x86_64, /vendor/lib64 , /system/lib64]]] couldn't find "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 Library(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: at android.app.ActivityT hread.installProvider(ActivityThread.java:5153) 10-26 10:30:39.395 2778 2778 E AndroidRuntime: at android.app.ActivityT hread.installContentProviders(ActivityThread.java:4748) 10-26 10:30:39.395 2778 2778 E AndroidRuntime: at android.app.ActivityT hread.handleBindApplication(ActivityThread.java:4688) 10-26 10:30:39.395 2778 2778 E AndroidRuntime: at android.app.ActivityT hread.-wrap1(ActivityThread.java) 10-26 10:30:39.395 2778 2778 E AndroidRuntime: at android.app.ActivityT hread$H.handleMessage(ActivityThread.java:1405) 10-26 10:30:39.395 2778 2778 E AndroidRuntime: at android.os.Handler.di spatchMessage(Handler.java:102) 10-26 10:30:39.395 2778 2778 E AndroidRuntime: at android.os.Looper.loo p(Looper.java:148) 10-26 10:30:39.395 2778 2778 E AndroidRuntime: at 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(Native Method) 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: Force finishing activity Sit eToolsMobile.Droid/md5988fcde8450a201101ada904f480bb79.SplashActivity 10-26 10:30:39.699 1534 2013 I WindowManager: Screenshot max retries 4 of 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: Initialized EGL, version 1.4 10-26 10:30:40.201 1534 1548 W ActivityManager: Activity pause timeout for Act ivityRecord{6e79c70 u0 SiteToolsMobile.Droid/md5988fcde8450a201101ada904f480bb79 .SplashActivity t6 f} 10-26 10:30:43.005 2778 2778 I Process : Sending signal. PID: 2778 SIG: 9 10-26 10:30:43.016 1534 2729 E Surface : getSlotFromBufferLocked: unknown buff er: 0x7fb4b733ab20 10-26 10:30:43.027 1534 2013 W InputMethodManagerService: Window already focus ed, ignoring focus gain of: 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: Process SiteToolsMobile.Droid (pid 2778) has died 10-26 10:30:43.207 1534 1553 W AppOps : Finishing op nesting under-run: uid 1 000 pkg android code 24 time=0 duration=0 nesting=0
所以我知道它找不到这个库,但我不知道为什么它找不到这个库,我不知道如何修复它。
我试过卸载应用程序、清理解决方案并重建。
我已经尝试了 6.0
以及 7.1.1
系统映像。
我没有尝试重新安装 xamarin 或其他任何东西,因为这会占用我可用网络上的剩余时间。
为什么 libmonodroid.so
不存在,我该如何解决?
编辑
x86_64 已启用。这是我的设备和高级 android 选项的屏幕截图。
AVD 设置-
构建选项-
在 Android Build Advance 选项中启用 x86_64
ABI:
我找到了解决办法!
禁用所有 ABI,除了 x86_64。
我还不知道哪个 ABI 导致了冲突。我想也许是 X86。因为他总是部署一个MonoRuntime...
最近安装 Xamarin 和 运行 遇到同样的问题,在 Android 设备日志中发现错误(Visual Studio:Tools/Android/Device 日志...)和这个解决方案确实解决了问题。我更进一步,将问题(至少在我的情况下)缩小到需要删除受支持的架构:armeabi。 None 的其他受支持架构导致了该问题。我是 运行 Xamarin for Visual Studio 4.2.2.11,Android 7.1.1 在 Android 模拟器下使用 Google APIs Intel Atom (x86_64) 和 Google 的 Nexus 5 设备。
删除除 x86
和 x86_x64
之外的所有内容将禁用物理设备上的调试。
正确的解决方案是删除 arm64-v8a
,它将正常工作。
On, Visual Studio for Mac (8.7.1) 这个问题是最近出现的 Xamarin.Android SDK 的安装包已经在 GitHub问题。
如前所述 here,它又开始发生并在 Visual Studio 的最新更新中得到修复。所以只需检查更新,然后安装它们。