«

»

Visual Studio 2015里用Xamarin开发Android应用

android vs2015 xamarin最近Windows10升级的新闻炒成一片,但对我而言,最感兴趣的则是传说中的Win10可以运行Android和IOS应用。听闻VS2015中可以也用C#开发安卓或IOS程序了,兴奋的下载下来装上,却发现仍是使用Xamarin平台框架。以前倒是关注过这个框架,但其收费政策让人望而却步。今天仔细看了一下,似乎可以注册免费的Starter帐号用于开发测试,并且布署到设备上去,尽管对Starter帐号的功能限制不甚了了,也还是试试吧。

建立并登录Xamarin帐号之后,创建了blank android应用或webview应用,都是报错,生成没有成功。报出“java.exe exited with code 1. (msb6006)”之类的错误。网上找方法,比如修改项目设置中java的最大堆尺寸,也没有作用。

后来想是不是N年前系统上安装的Android SDK没有升级的问题?

找到硬盘上Android SDK的安装目录,双击SDK Manager.exe启动SDK管理器时,窗口一闪而过,看不到什么报错,却没有启动起来。AVD管理器也是一样。

打开CMD窗口,查看系统JAVA版本是 1.7.0。但是执行javac的时候,却提示无此命令。难道机子上没有安装过JDK?去安装卸载里查看,却有JDK。看来大约是长期使用过程中,某些程序改变了JDK的路径变量。于是把JDK的bin路径放在PATH变量的最前面,再双击SDK Manager.exe,好了SDK管理器启动了。

重新尝试在VS2015里编译Xamarin应用,仍是报一样错误,那就先升级下Android的SDK再说吧。

但是升级时也遇到麻烦,比如有两个需要升级的包,下载完后提示null,然后是nothing was installed。有人说将SDK管理器的tools菜单里的选项设为从https下载,试了还是不行,决定上代理再试试。上了某vpn代理,仍是一样的结果。后来看到此代理界面上显示有同时启动的http代理服务端口信息。于是将IP和端口信息填进SDK管理器选项中,再点击更新。这次看到下载的进度条了。看来有可能成功啊。

经过漫长的反复多次的下载更新过程,最后甚至把该分区上几十G的硬盘空间给用完了,终于更新到了一个比较新的版本,下面是SDK管理器日志中正确的更新信息:

然后,在VS2015里打开之前编译失败的Xamarin项目,重新生成项目,成功了!看来Android SDK的版本升级也是正确运行Xamarin应用的一个前提。

Visual Studio 2015里用Xamarin开发Android应用

然后,点击在“avd2.3”里运行。注意“avd2.3”是很久以前创建的一个Android 2.3版本的模拟器。可以看到avd2.3正确启动了,出现了Android模拟器的窗口。但是,在里面却找不到调试的应用,比如本次调试的Xamarin应用App3的图标。用模拟器里安装的文件管理器搜索,也找不到App3的apk安装文件。

后来在某处看到提示,打包的应用需要某级别的API Level,而模拟器5554是某级别的API Level,需要在Android的应用属性里将API Level相应调整之类的。于是把App3应用的API Level调成Level 10,也就是Android 2.3版本。再启动调试:

OK,提示部署成功了。在avd2.3模拟器里查看,桌面上也出现了App3的图标。点击运行,正常。

Visual Studio 2015里用Xamarin开发Android应用

暂时还没有开发安卓客户端的需求,那就暂时告一段落吧。

1 星2 星3 星4 星5 星 (尚无评分)
Loading...Loading...

相关文章

Android中的String.equalsIgnoreCase方法 PhoneGap+HTML做个android小程序,网页的title设为"-1",然后在android程序中appView.getTitle()=="-1"...
android:color 属性 颜色通常是rgb值来表示,但是要加上一些透明呢?Android中使用4个数字来表示颜色,分别是alpha、红(red)...
PhoneGap与jQuery Mobile的Splash屏幕 有种看法认为对于移动设备用户,是非常讨厌splash屏幕的,其实我自己正是这样。但是对phonegap及jquery...
PhoneGap框架的DroidGap类中对WebView的访问 此问题纠结一下午。phonegap中默认显示的webview是不带滚动条的,但有时需要这个特性,如何显示它呢?据...
PhoneGap编程中DOMContentLoaded和deviceready事件... 在桌面网页中deviceready是不会触发的,但在将应用部署到设备上时我们可以用deviceready代替DOMContentL...
DW CS5.5 升级PhoneGap 1.5的问题 DW cs5.5内带的phonegap 0.9过于陈旧,经常会导致错误。但是在升级到最新版的1.5时,发现个有趣的问题。...
DW CS5.5+PhoneGap+Eclipse开发Android应用 DW cs5.5强化了对基于html5的web应用的支持,内嵌有jQuery mobile 1.5和PhoneGap(大约是0.9版本),在适...
如何防止app被移除广告 对于开发者,最伤心的莫过于辛苦开发的app被人破解移除了广告,那点可怜的广告收入还要被剥夺。就如hack...

发表评论

电子邮件地址不会被公开。