第一个VS2015 Xaramin Android项目
20170323新增:VS环境配置
打开VS,菜单栏选工具(Tools) 选项\
一般有2个地方需要修改
1

2

新建第一个项目,什么都没有修改的情况下(已经配置好环境变量)直接运行,会发现如下错误:

这是因为没有连上手机或没有开启虚拟设备,打开AVD创建设备并打开后回VS运行按钮会变成下图:

再点击运行即可将app部署到虚拟设备,但是我并不建议使用Google 的AVD Manager创建的设备,因为实在是卡成狗。我们可以尝试使用Xamarin Android Player 或VS2015自带的模拟器,我这里用的是VS自带的模拟器。
XAP下载地址:https://developer.xamarin.com/releases/android/android-player/(下载安装后安装相应的模拟器需要FQ。)
VS Android模拟器下载地址:https://www.visualstudio.com/zh-hans/vs/msft-android-emulator/
模拟器介绍:https://my.oschina.net/u/2317468/blog/509516?p=1
为什么模拟器XAP 或 VS_Enulator 比AVD要快?这是需要硬件支持的《Windows Phone 8 模拟器的系统要求》,否则vs_emulatorsetup.exe会安装失败(有提示错误原因)
在 BIOS 中,必须支持以下功能:
硬件辅助虚拟化。【我使用的是Intel CPU,可以使用securable查看是否支持】
二级地址转换 (SLAT)。【可以使用微软官方的工具Coreinfo 进行检测[command-> coreinfo.exe –v]】
基于硬件的数据执行保护 (DEP)。【参考:你的计算机开启了数据执行保护(DEP)吗? 我个人觉得应该是防止虚拟机内的病毒通过某些手段攻击主机?】
虚拟化 (详细请查看:虚拟化技术简介)
我们通常所说的虚拟化主要是指平台虚拟化技术,通过使用控制程序(Control Program,也被称为 Virtual Machine Monitor 或Hypervisor),隐藏特定计算平台的实际物理特性,为用户提供抽象的、统一的、模拟的计算环境(称为虚拟机)。
何为 SLAT 呢?(详细请查看:什么是SLAT,检查 CPU 是否支持二级地址转换 (SLAT))
在程序访问内存时都要经过从逻辑地址到物理地址的映射,虚拟环境下也不例外反而更加复杂,因为第一次映射出来的“物理地址”还是虚拟机下的虚拟地址,需要通过虚拟机把它再次映射成实际的物理地址,这样就限制了访问的速度。
而 SLAT 即“二级地址转换”,可以加速页表访问的速度!在 Intel 和 AMD 处理器上都提供了这一新技术,两个品牌针对 SLAT 这一技术有不同的技术名称:
Intel 的 SLAT 称为 EPT(Extended Page Table),Intel 的 Core i7,i5,i3,Pentium G6950 以及大部分的 Xeons 处理器都支持 SLAT,而 Core 2 系列以及更早的处理器则不支持!
AMD 的 SLAT 称为 RVI(Rapid Virtualzation Indexing),第三代皓龙处理器(代号:巴塞罗那)都支持这一技术。
BIOS 开启 虚拟技术(仅以我自己的主板为例)

开启Hyper

开启Hyper 后开始运行调试app又发现了需要开启Hyper 服务

在控制面板设置那里忘记勾选 Hyper-V服务了,除此之外可以勾选Hyper-V虚拟机监控程序。确定后需要重启计算机。
重启后打开VS,继续运行调试app发现又弹窗了:You have been added to the Hyper-V Administrators security group. Please sign out of your computer for the permissions to take effect.
英语好的可以看这:android enuemulator problem

这里有解决方案很简单,使用管理员身份打开VS

或者有一劳永逸的操作方式:右击vs,选属性,在弹窗后选快捷方式,选高级,勾选用管理员身份运行即可。

好了,做完上述步骤后继续打开VS,开启运行调试。模拟器总算可以运行了,但是却发现模拟器并没有成功安装app,前文已经说过解决方式,这里再说一次吧~
在注册表中"HKCU\Software\Microsoft\VisualStudioEmulator\Android"下添加一个名称为"AdbPath"的键,值就是Android SDK的platform-tools绝对路径(D:\Android\android-sdk\platform-tools)。


最后提示,刚进模拟器系统时打开 app,app有可能闪退,等一会app真正安装好后再打开就好了。
自此,第一个app终于可以运行!
第一个VS2015 Xaramin Android项目的更多相关文章
- 第一个VS2015 Xaramin Android项目(终)
其实还有一个问题没解决,也拖很久了.中途公司的项目太紧导致无法学习更新. 之前的问题是这样的:项目搭建成功了,App也成功发布到虚拟机.便尝试增加控件 Xaml 设计界面如下: 但是在虚拟机运行却这样 ...
- 第一个VS2015 Xaramin Android项目(续)
上文说到已经第一个 App已经可以运行,但是并不能调试! 经过细心发现,我察觉到VS刚开始进入了调试模式,但是一闪而过.也就是说调试失败了,此时需要等待一段时间才能打开此App,如果立即打开App 会 ...
- 创建一个ArcGIS for Android 新项目并显示出本地的地图
1.准备工作:首先要配置好android的开发环境,然后在Eclipse中安装ArcGIS for Android的开发控件:在ArcCatalog中发布好本地的地图服务. 2.安装完ArcGIS f ...
- 创建一个Android项目
当我们的eclipse安装了SDK后,点击Window-->Perference-->DDMS.eclipse界面立即转为DDMS界面. 这时,我们可以打开我们的服务端(安卓模拟器或者是我 ...
- 【Android Developers Training】 1. 创建一个Android项目工程
注:本文翻译自Google官方的Android Developers Training文档,译者技术一般,由于喜爱安卓而产生了翻译的念头,纯属个人兴趣爱好. 原文链接:http://developer ...
- [Android开发教程]Android官网developer training中文版教程 - 1.1.1 创建一个Android项目
本系列持续更新中.转载请注明来源. 前言:近期打算系统学习一下Android开发,发现Android官网上的developer training也是个非常好的学习资料,于是想到一边学习一边写一个中文版 ...
- 在Windows上将ReactNative集成到现有的Android项目
React Natvie的官方文档的 Integrating with Existing Apps 已经很详细地教我们如何将React Natvie集成到现在的Android项目.我根据官方文档的步骤 ...
- Android项目结构 以及体系结构
学习Android平台的人一般对Android的平台的应该有点认识 其它的就不多讲了 Android项目一般由以下几个部分构成 以上是一个简单的Android项目结构目录图 1. src 主要是 源 ...
- 小KING教你做android项目(一)
写在项目开始之前: 最近关于android的视频教程,入门的书籍也已经有很多了,例如我的入门就是看了mars的视频教程.但是这么一圈学习下来,觉得真正快速提高的,不是在看视频,而是在实际工作中动手做项 ...
随机推荐
- Android之MainActivity类
一.MainActivity: 1.每个种语言都有一个程序入库(如:C#main函数),而Android程序的入口就是Mani Actiivty函数. 2.Activity是Android的核心类(a ...
- ES6中字符串模板的使用
反撇号(键盘上Tab键上面那个)基础知识 ES6引入了一种新型的字符串字面量语法,我们称之为模板字符串(template strings).除了使用反撇号字符代替普通字符串的引号 ‘ 或 ” 外,它们 ...
- CLOSE_WAIT状态的原因与解决方法
https://blog.csdn.net/Windgs_YF/article/details/83513696 netstat -nat|awk '{print $6}'|sort|uniq -c| ...
- SpringBoot入门篇--关于properties和yml两种配置文件的一些事情
我们在使用SpringBoot这个框架的时候都一定使用或者说是见到过application.properties或者是application.yml,经不住有人就会问这俩文件到底是什么情况,其实说白了 ...
- python 列表复制给另一个列表,改值两个列表均会改变(备忘)
http://blog.csdn.net/lc_lc2000/article/details/53135839 本意是使A = B,B为一个列表,结果在后续对A的操作中,导致B中的值也改变了,才回忆起 ...
- __get__ __set__ __delete__描述符
描述符就是一个新式类,这个类至少要实现__get__ __set__ __delete__方法中的一种class Foo: def __get__(self, instance, owner): pr ...
- Python-反射getattr的应用
login.py #!/usr/bin/dev python# coding:utf-8 def index(): print u'欢迎访问xx网站首页' def login(): print u'登 ...
- windows下wmic命令
转载 https://www.cnblogs.com/archoncap/p/5400769.html 第一次执行WMIC命令时,Windows首先要安装WMIC,然后显示出WMIC的命令行提示符.在 ...
- JPA中建立数据库表和实体间映射小结
在JPA中,映射数据库表和实体的时候,需要注意一些细节如下, 实体类要用@Entity的注解: 要用 @Id 来注解一个主键: 如果跟数据库相关联,要用@Table注解相关数据库表: 实体类中字段需要 ...
- txt,csv,json互相转化
也没啥,记下来怕忘了.说明都在代码里面: 麻蛋,这个着色好难看 import csv import json #从txt变为csv student_txt=[]; with open("st ...