2016-10-26 5 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"

전체 로그 캣은 여기 - 볼 수 있습니다

--------- 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 디렉토리를 찾아 I 수없는 이유를 모르겠어요 그것을 고치는 법을 모른다.

나는 앱을 제거하고, 솔루션을 청소하고, 재구성을 시도했다. 6.07.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

해결책을 찾았습니다!

x86_64를 제외한 모든 ABI를 비활성화하십시오.

나는 ABI가 충돌을 일으키는 지 아직 알지 못합니다. 아마 X86 같아. 그는 항상 MonoRuntime을 배포했기 때문에 ...

+0

나는 이것을 더 일찍 언급해야했다. 나는 당신이 사용하려고하는 것을 제외하고 모든 abi를 무력화시키는 것을 발견했습니다. 어쩌면 "선택한 API 당 하나의 페이지 (apk) 생성"도 확인할 수 있습니다. –

+0

이것은 올바른 해결책이 아니므로 물리적 장치의 디버깅 응용 프로그램을 사용할 수 없게됩니다. –

+0

이것은 나를 위해 일한 유일한 방법으로 새로 설치 한 Win10, Xamarin 4.2.0.719입니다. – joe

2

는 안드로이드 빌드 고급 옵션에서 x86_64 ABI를 사용 :

,

enter image description here

+0

내 원본 게시물을 스크린 샷으로 업데이트했습니다. 'x86_64'가 체크됩니다. –

+0

@MicahWilliamson 각각의'lib/' 폴더에서이 설정이 존중되도록하기 위해 생성 된'.apk' 파일을 탐색 할 수 있습니다. –

+0

https://play.google.com/store/apps/details?id=com.xh.nativelibsmonitor.app를 사용하여 기기에서 직접 확인할 수도 있습니다. –

0

최근에 Xamarin을 설치하여 동일한 문제가 발생하여 Android Device Log (Visual Studio : Tools/Android/Device Log ...)에서 오류를 발견했으며이 솔루션이 해결되었습니다. 문제. 나는 한 걸음 더 나아가서 지원되는 아키텍처를 제거 할 필요성에 대한 문제 (적어도 제 경우에는)를 좁혔습니다 : armeabi. 지원되는 다른 아키텍처 중 아무 것도 문제를 일으키지 않았습니다. Android API는 Intel Atom (x86_64) 및 Google의 Nexus 5 장치를 사용하는 Android Emulator에서 Android 7.1.1과 함께 Visual Studio 4.2.2.11 용 Xamarin을 실행합니다.

0

x86x86_x64을 제외한 모든 항목을 제거하면 물리적 장치에서 디버깅이 비활성화됩니다.

정확한 해결책은 arm64-v8a을 제거하는 것입니다. 문제가 해결 될 것입니다.

관련 문제