【記錄】解決VS2015調試Xamarin程序一閃而過(使用微軟ANDROID模擬器)


越來越多的人去安裝Visual Studio 2015,也會去試試其中的C#跨平台開發利器Xamarin,但是也會發現很多問題。

我相信我不會是唯一遇到以下問題的,也不會是最后一個,特此記錄。

微軟的VS2015會自帶微軟的模擬器(UPDATE1開始),VS Emulator for Android,本人一開始使用的是GOOGLE自帶的模擬器,但是異常的卡,所以想嘗試一下新的組合。

我相信會有不少人遇到XAMARIN與VSEA的兼容問題,這個最大的原因可能還在於HYPER-V本身的兼容性很差。

 

特此記錄以下問題:

如果VISUAL BOX(例如GENYMOTION等模擬器)發生無法啟動的情況或無法使用VT-X的情況時,一般是因為HYPER-V鎖死了軟件層的虛擬機應用指令集,解決方法徹底卸載VSEA以及卸載HYPER-V並重啟。

如果遇到XAMARIN任何程序,在VSEA中一閃而過或無法調試,並報一下錯誤:

03-25 21:27:21.970 E/AndroidRuntime( 1590): FATAL EXCEPTION: main
03-25 21:27:21.970 E/AndroidRuntime( 1590): Process: App3.App3, PID: 1590
03-25 21:27:21.970 E/AndroidRuntime( 1590): java.lang.UnsatisfiedLinkError: Couldn't load monodroid from loader dalvik.system.PathClassLoader[DexPathList[[zip file "/data/app/App3.App3-1.apk"],nativeLibraryDirectories=[/data/app-lib/App3.App3-1, /system/lib]]]: findLibrary returned null
03-25 21:27:21.970 E/AndroidRuntime( 1590): at java.lang.Runtime.loadLibrary(Runtime.java:358)
03-25 21:27:21.970 E/AndroidRuntime( 1590): at java.lang.System.loadLibrary(System.java:526)

或錯誤為:

03-25 21:25:31.928 W/monodroid( 1427): Trying to load sgen from: /storage/emulated/0/Android/data/App3.App3/files/.__override__/libmonosgen-2.0.so
03-25 21:25:31.928 W/monodroid( 1427): Trying to load sgen from: /data/app-lib/App3.App3-2/libmonosgen-2.0.so
03-25 21:25:31.928 W/monodroid( 1427): Trying to load sgen from: /data/data/App3.App3/files/.__override__/links/libmonosgen-2.0.so
03-25 21:25:31.928 W/monodroid-debug( 1427): Trying to initialize the debugger with options: --debugger-agent=transport=dt_socket,loglevel=0,address=127.0.0.1:8827,server=y,embedding=1
03-25 21:25:32.112 W/monodroid-debug( 1427): Accepted stdout connection: 43
03-25 21:25:32.888 D/Mono ( 1427): Image addref mscorlib[0xb8dd2010] -> mscorlib.dll[0xb8dd1350]: 1
03-25 21:25:32.892 D/Mono ( 1427): AOT module 'mscorlib.dll.so' not found: dlopen failed: library "/data/app-lib/App3.App3-2/libaot-mscorlib.dll.so" not found
03-25 21:25:32.892 D/Mono ( 1427): AOT module '/Users/builder/data/lanes/2970/46c3f7e0/source/monodroid/builds/install/mono-x86/lib/mono/aot-cache/x86/mscorlib.dll.so' not found: dlopen failed: library "/data/app-lib/App3.App3-2/libaot-mscorlib.dll.so" not found
03-25 21:25:32.892 D/Mono ( 1427): Unloading image data-0x96699010 [0xb8dd20b0].
03-25 21:25:32.912 D/Mono ( 1427): Assembly mscorlib[0xb8dd2010] added to domain RootDomain, ref_count=1

 

而且發生無法調試的情況,基本上是因為虛擬機鏡像以及HYPER-V本身的兼容問題,也可能是WIN10的問題,建議直接使用第三方的模擬器替代VSEA模擬器即可,此處推薦2個模擬器:GENYMOTION以及天天。

基本上使用GENYMOTION和XAMARIN的兼容是最好的,目前測試,毫無壓力調試。

 

特此記錄,以防出現類似問題。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM