VS2015 Xamarin.Forms使用经验1

VS2015 Xamarin.Forms项目使用Genymotion模拟器

VS2015支持用C#编写跨平台软件,Xamarin.Forms则提供了一个基本的项目框架。VS2015自带Android模拟器,但是需要打开Hype-V,内存占用很大,我还是觉得占用内存比较小的Genymotion模拟器更好用,所以研究两者怎么搭配使用。

先看看怎么安装和配置。

安装VS2015 Update3,选择自定义,打勾Xamarin,最后提示Android SDK安装失败,需要手工补充安装。

VS2015 Xamarin.Forms使用经验1_第1张图片

以管理员权限运行C:\Program Files (x86)\Android\android-sdk\SDK Manager.exe,设置好国内镜像代理服务器,刷新后,默认提示安装23.0.1版本Tools。
VS2015 Xamarin.Forms使用经验1_第2张图片

装完之后再刷新,会提示又有新版本,只安装23.0.1版本就好了,不要继续安装更高版本,装好之后是这样子的。
VS2015 Xamarin.Forms使用经验1_第3张图片

然后安装Genymotion 2.7.2,以管理员权限运行Genymotion,添加手机模拟器,然后等待下载完毕。因为Genymotion官网下载手机模拟器很慢,最好把下载好的ova目录复制一份,如果重装软件,或者要在别的计算机上使用Genymotion,可以把ova目录复制过去,添加手机模拟器后立马完毕。Ova目录在C:\Users\xxx\AppData\Local\Genymobile\Genymotion\ova。

然后参考https://msdn.microsoft.com/zh-cn/library/mt679501.aspx,在VS2015中新建Visual C#,Cross-Platform,Blank App(Xamarin.Forms Portable), 如果此时在Android项目上执行重新生成,会爆出1000多个错误!必须在解决方案上使用Nugget,更新Xamarin.Forms,当前最新版本是2.3.0.107,更新的过程又是漫长的等待。
VS2015 Xamarin.Forms使用经验1_第4张图片

更新完毕再次重新生成Android项目,系统会自动下载对应的android_m2repository_r29.zip,一定要提前把VPN开起来,不然在这里会彻底卡死。如果编译过程中点击取消,可以看到错误信息:C:\Program Files (x86)\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(387,2): error XA5208: Download failed. Please download https://dl-ssl.google.com/android/repository/android_m2repository_r29.zip and put it to the C:\Users\xxx\AppData\Local\Xamarin\Xamarin.Android.Support.Animated.Vector.Drawable\23.3.0.0 directory.
经过漫长的等待后终于编译通过。最好把C:\Users\xxx\AppData\Local\Xamarin\zips目录备份下来,如果重装系统,或者在其他计算机上开发同类项目,可以复制Zips目录过去,不用在编译时再下载。
把Genymotion模拟器跑起来,在VS2015的菜单上就可以看到它,点击调试运行就可以跑到模拟器上去了。
VS2015 Xamarin.Forms使用经验1_第5张图片

终于可以愉快地玩耍了。
VS2015 Xamarin.Forms使用经验1_第6张图片

下面说一说期间遇到的坑。

1.SDK Tools版本过高
每次打开SDK Manager,都会提示可以下载最新版本Tools,我曾经试过把Tools版本升级到最新。
VS2015 Xamarin.Forms使用经验1_第7张图片

然后调试软件到Genymotion模拟器上运行,出现以下错误:
1>尝试在条件“(DeviceSdkVersion)>=21(_DeviceSdkVersion)”进行数值比较。

我在百度上搜索这个问题,居然没有任何答案!感觉目前做Xamarin开发的资料实在太少了。我重装过几次系统,后来无意中找到了问题所在,所以决定写这篇文章,把这个问题公布出来,毕竟我看别人的文章很多年,受益匪浅,有机会应该贡献一点微薄的力量,希望可以帮助到别人。

如果不小心把SDK Tools升级到了最新版本,但是又想用Genymotion,还可以这样处理,在Genymotion的ADB设置中,把SDK路径指向C:\Program Files (x86)\Android\android-sdk
VS2015 Xamarin.Forms使用经验1_第8张图片

2.SDK路径错误
我在计算机上同时安装了Android Studio 2.0,为了做一个实验,把VS2015的SDK路径指向了Android Studio的SDK路径。
VS2015 Xamarin.Forms使用经验1_第9张图片
后来编译Xamarin.Forms项目总是出现这样的错误:CS0117 ‘Resource.Attribute’ does not contain a definition for ‘actionBarSize’。后来偶然发现SDK路径不对,改回VS2015的默认路径就没问题了。这个问题也折腾了很久,总之Xamarin.Forms对环境很敏感,有问题可以先检查以下设置。

3.下载APP报错INSTALL_FAILED_UPDATE_INCOMPATIBLE
这个问题通常是由于签名不匹配导致,在手机和模拟器上都遇到过,解决办法:到手机的应用管理中,卸载APP,然后重新下载。

你可能感兴趣的:(Xamarin)