VS2015 Update2 构建 Android 程序问题汇总

所属分类: 网络编程 / ASP.NET 阅读数: 1471
收藏 0 赞 0 分享

自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中同样存在.

更多精彩内容其他人还在看

asp.net 虚方法、抽象方法、接口疑问

asp.net 虚方法、抽象方法、接口疑问等说明。
收藏 0 赞 0 分享

c#  操作符?? null coalescing operator

?? "null coalescing" operator 是c#新提供的一个操作符,这个操作符提供的功能是判断左侧的操作数是否是null,如果是则返回结果是右侧的操作数;非null则返回左侧的操作数。
收藏 0 赞 0 分享

.net 反序题目的详细解答第1/2页

在各种答案,以及平时面试过程中,这道题总归会有一些非常典型的错误发生。其中给老赵的感觉也非常有意思,不知其中的“思路”是否如老赵猜测那样。
收藏 0 赞 0 分享

implicitly convert type 'int' to 'short'的原因与解决方法

implicitly convert type 'int' to 'short'的原因与解决方法
收藏 0 赞 0 分享

比较完整的 asp.net 学习流程

好多朋友想学习后台编程语言,但请注意的事,学习后台是个循序渐进的过程,不可能一下就到位,其实不只是asp.net其它的编程语言都需要下面的一些知识。
收藏 0 赞 0 分享

官网 Ext direct包中.NET版的问题

下载了官网的 Ext direct 包进行研究,发现服务器端返回结果存在一点小问题。
收藏 0 赞 0 分享

C# XML操作 代码大全(读XML,写XML,更新,删除节点,与dataset结合等)第1/2页

C#操作XML(读XML,写XML,更新,删除节点,与dataset结合等),以下就是操作XML的所有方法,相信可以满足很大一部份的使用了。
收藏 0 赞 0 分享

c# 连接字符串数据库服务器端口号 .net状态服务器端口号

正常的数据库连接字符串配置,这是在MSSQL服务器端口是1433(默认)的情况下。
收藏 0 赞 0 分享

ASP.NET 路径问题的解决方法

相对路径和绝对路径在ASP.NET中可以用~/来解决.
收藏 0 赞 0 分享

asp.net TemplateField模板中的Bind方法和Eval方法

在TemplateField模板中为了能够有限制的或者取出数据库中某列的值时,可以用Bind和Eval方法来实现。以下是Bind方法的格式,Eval的格式也是和Bind一样的。 Bind("列的名称","显示的格式文")
收藏 0 赞 0 分享
查看更多