自VS2015起, Visual Studio開始逐漸內置支持跨平台開發, 並且Visual Studio團隊還額外發布了一個編譯工具集Clang with Microsoft CodeGen, 方便開發人員進行跨平台代碼的開發, 該工具集在VS 2015 Update 2時采用的 Clang 版本號是3.7. 與此同時VS的移動開發能力也不再局限於Windows Phone, 而是支持了包括Android, iOS在內的主流平台的應用開發. 和其它新特性首次被引入一樣, 雖然歷經了兩次Update, 同樣難免仍存在一些'BUG', 本文就搭建過程中遇到的一些問題作個小結, 並不定時更新.
1.雖然安裝的時候可以勾選Visual C++ Android Development, 但是Visual Studio 2015 with Update 2的離線安裝包iso中並未完整包含Android SDK, Android NDK, Apache Ant等套件, 所以需要在線下載, 然而受限於國內的網絡環境, 安裝完成之後你很可能會收到下載失敗的警告, 要是這樣的話你就要自己去下載安裝包並手動配置, 否則你將會遇到諸如Argument 'sdkLocation' is null or empty; aapt.exe could not be found at '.' 等錯誤.
這裡提供作者使用到的一些國內鏡像地址:
http://ubuntu.buct.edu.cn/android/repository/
http://mirrors.neusoft.edu.cn/android/repository/
http://mirrors.hust.edu.cn/apache/ant/binaries/
除了Android SDK的手動安裝步驟略繁(必備包括Android SDK Tools, Platform-tools和Build-tools等), 其它基本都是一個zip直接解壓就行了. 最後需要在VS2015->Tools->Options->Cross Platform配置下地址, 具體看圖:
2.如果安裝的時候卡在Java, Android等上好長時間, 大可不必著急Cancel, 用任務欄管理器結束Secondary Installer相關的進程, 然後安裝就可以繼續而不會影響其他組件的安裝, 後面再把需要的相關組件單獨安裝.
這裡作者安裝VS2015時卡在Microsoft Visual Studio Emulator for Android,建議跳過這個模塊最後去單獨下載該模擬器的安裝包安裝就是了,如果安裝該模擬器到最後又失敗回滾的話,檢查你的電腦是否開啟或者支持Hyper-V特性,比如win8 home edition就沒有.
3.上述步驟操作完成基本就可以進行 Android 程序編寫了, 但是如果你使用C++開發Native-Activity Application, 你可能在 Build 的時候會得到以下類似錯誤:
TRK0005: Failed to locate: “clang.exe”. The system cannot find the file specified
TRACKER : ���� TRK0005: δ���ҵ�: ��clang.exe����ϵͳ�Ҳ���ָ�����ļ�
這些問題是因為你安裝的NDK中並未自帶合適的Clang版本導致的, 注意VS2015 with Update 2僅僅內置了對Clang 3.6的支持, 如果你不想去配置工具平台, 那麼建議你直接下載android-ndk-r10e-windows-x86.zip這個版本的ndk, 因為android-ndk-r10e之前的版本和之後android-ndk-r11等版本內置的Clang均不是3.6版的. 然後這裡還有個細節, 如果你下載的是android-ndk-r10e-windows-x86_64.zip, 那麼你還需要把\android-ndk-r10e\toolchains\llvm-3.6\prebuilt\windows-x86_64改名為\android-ndk-r10e\toolchains\llvm-3.6\prebuilt\windows.
4.如果你使用Microsoft Visual Studio Emulator for Android, 並且選擇了為模擬器配置網絡, 那麼你可能會遇到以下錯誤:
XDE Exit Code: Unknown (-532462766) unhandled exception. Exception Info: System.Management.ManagementException
上面的錯誤是從模擬器啟動失敗的log文件中反映出來的,這是因為Hyper-V的虛擬交換機沒有配置好, 並且這時候打開Hyper-V Manager->Virtual Switch Manger...你很可能會收到以下提示
An error occurred while trying to retrieve a list of virtual switches
至於這個error是啥並未深究,解決方法是徹底卸掉Microsoft Visual Studio Emulator for Android和Hyper-V, 重啟, 安裝Hyper-V(注意全部都要勾選), 重啟, 再安裝模擬器(並重啟?), 這時候就能正常啟動模擬器了, 由於windows features的安裝基本都需要重啟才能完成, 因此不要嫌麻煩跳過重啟!
接下來就是用VS2015配合模擬器進行調試了,但是問題還沒完.你部署時可能會遇到"Could not locate the Android Debug Bridge (adb.exe).",然後VS的設備列表就突然變成了"no available devices"
看樣子是找不到adb.exe,看來僅僅在VS裡面配置好Android SDK Path還不夠, 搜索了下, 找到以下方案並成功解決:
打開注冊表管理器,定位HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Android SDK Tools, 修改Path的值為你的SDK路徑, 如果沒有, 就新建鍵Android SDK Tools, 然後添加名為Path的字符串值(String Value)
注意no available devices的原因還可能是adb.exe和VS的啟動次序問題, 這個在eclipse中同樣存在.