热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

VS2015Update2构建Android程序问题汇总

这篇文章主要介绍了VS2015Update2构建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 '.' 等错误.

这里提供作者使用到的一些国内镜像地址:

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


推荐阅读
  • 深入理解 Oracle 存储函数:计算员工年收入
    本文介绍如何使用 Oracle 存储函数查询特定员工的年收入。我们将详细解释存储函数的创建过程,并提供完整的代码示例。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • 在计算机技术的学习道路上,51CTO学院以其专业性和专注度给我留下了深刻印象。从2012年接触计算机到2014年开始系统学习网络技术和安全领域,51CTO学院始终是我信赖的学习平台。 ... [详细]
  • CSS 布局:液态三栏混合宽度布局
    本文介绍了如何使用 CSS 实现液态的三栏布局,其中各栏具有不同的宽度设置。通过调整容器和内容区域的属性,可以实现灵活且响应式的网页设计。 ... [详细]
  • Linux 系统启动故障排除指南:MBR 和 GRUB 问题
    本文详细介绍了 Linux 系统启动过程中常见的 MBR 扇区和 GRUB 引导程序故障及其解决方案,涵盖从备份、模拟故障到恢复的具体步骤。 ... [详细]
  • 本文介绍了如何使用jQuery根据元素的类型(如复选框)和标签名(如段落)来获取DOM对象。这有助于更高效地操作网页中的特定元素。 ... [详细]
  • 本文介绍如何在 Xcode 中使用快捷键和菜单命令对多行代码进行缩进,包括右缩进和左缩进的具体操作方法。 ... [详细]
  • 本文介绍了一款用于自动化部署 Linux 服务的 Bash 脚本。该脚本不仅涵盖了基本的文件复制和目录创建,还处理了系统服务的配置和启动,确保在多种 Linux 发行版上都能顺利运行。 ... [详细]
  • 在Linux系统中配置并启动ActiveMQ
    本文详细介绍了如何在Linux环境中安装和配置ActiveMQ,包括端口开放及防火墙设置。通过本文,您可以掌握完整的ActiveMQ部署流程,确保其在网络环境中正常运行。 ... [详细]
  • 本文介绍如何通过Windows批处理脚本定期检查并重启Java应用程序,确保其持续稳定运行。脚本每30分钟检查一次,并在需要时重启Java程序。同时,它会将任务结果发送到Redis。 ... [详细]
  • 本章将深入探讨移动 UI 设计的核心原则,帮助开发者构建简洁、高效且用户友好的界面。通过学习设计规则和用户体验优化技巧,您将能够创建出既美观又实用的移动应用。 ... [详细]
  • 本文介绍如何通过SQL查询从JDE(JD Edwards)系统中提取所有字典数据,涵盖关键表的关联和字段选择。具体包括F0004和F0005系列表的数据提取方法。 ... [详细]
  • 本文详细介绍了如何通过命令行启动MySQL服务,包括打开命令提示符窗口、进入MySQL的bin目录、输入正确的连接命令以及注意事项。文中还提供了更多相关命令的资源链接。 ... [详细]
  • MySQL中枚举类型的所有可能值获取方法
    本文介绍了一种在MySQL数据库中查询枚举(ENUM)类型字段所有可能取值的方法,帮助开发者更好地理解和利用这一数据类型。 ... [详细]
  • 本文详细探讨了在Android 8.0设备上使用ChinaCock的TCCBarcodeScanner进行扫码时出现的应用闪退问题,并提供了解决方案。通过调整配置文件,可以有效避免这一问题。 ... [详细]
author-avatar
N个小灰流_701
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有