VS2015 Update2 构建 Android 程序问题汇总
自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 '.' 等错误.
这里提供作者使用到的一些国内镜像地址:
除了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中同样存在.