2016-10-26 71 views
2

我已經得到這個問題幾天了,還沒有找到解決方案。Xamarin:找不到「libmonodroid.so」模擬器錯誤

我一直在使用我的模擬器的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 [email protected] attribute=null, token = [email protected] 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

所以我知道它無法找到此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

回答

2

我找到了解決方案!

禁用以前的ABI,但x86_64除外。

我不知道哪個ABI導致衝突。我想也許是X86。因爲他總是部署了MonoRuntime ...

+0

我應該早些時候對此進行評論。我發現禁用每個abi,除了你打算使用的工作。也許檢查「每個選定的API生成一個頁面(apk)」也可以。 –

+0

這是不正確的解決方案,這將禁用物理設備上的調試應用程序 –

+0

這是唯一對我也有效的工具,全新安裝Win10,Xamarin 4.2.0.719。 – joe

2

在你的Android組建高級選項啓用x86_64 ABI:

enter image description here

+0

用屏幕截圖更新了我原來的帖子。檢查'x86_64'。 –

+0

@MicahWilliamson您可以隨時篩選生成的'.apk',以確保在相應的'lib/'文件夾中遵守該設置。 –

+0

我也建議使用https://play.google.com/store/apps/details?id=com.xh.nativelibsmonitor.app直接在設備上查看。 –

0

最近安裝了Xamarin和遇到同樣的問題,發現在Android設備日誌中的錯誤(Visual Studio中:工具/安卓/設備日誌...),並將此溶液做了決心問題。我更進了一步,縮小了問題的範圍(至少在我的情況下)是需要移除受支持的體系結構:armeabi。沒有其他支持的體系結構導致此問題。我正在使用Google APIs Intel Atom(x86_64)和Google的Nexus 5設備在Android Emulator下運行Xamarin for Visual Studio 4.2.2.11和Android 7.1.1。

0

刪除除x86x86_x64一切都將禁用物理設備的調試。

正確的解決方法是刪除arm64-v8a,它會工作正常。