Xamarin.Forms学习之初
微软的Build 2016结束的有段时间了,对于一个简单的小屌丝程序员--我来说,关注最大的无疑是Xamarin的免费(开源什么的让大神们上吧),内心激动啊。大会结束的周末我就迫不及待的安装了,然后。。。一脸的懵逼,更新vs后什么sdk,jdk都不知道,唯一知道的就是没法运行,后来大神们相继出了一些文章,才开始了解一些大概,有错误的请在下面留言提出,免得我误导了别人。
xamarin可以简单分为一下几个:
Xamarin.Forms:个人觉得这才是Xamarin真正的优势所在,真正的跨平台,一次编写,到处运行。
Xamarin.IOS和Xamarin.Android:这个。。。嗯,我简单的理解为Xamarin.原生,只是把java和object-c或者swfit换成了C#,其他的貌似也就多了个业务层共享吧,当然这个也是现在能应用吧,毕竟可以引用安卓和苹果的众多的第三方SDK。
所以如果你想立马尝试C#编写Android和IOS程序,可以上手学习Xamarin.IOS和Xamarin.Android,但是这样会让你远离Xamarin真正的核心--跨平台,所以我建议还是学习Xamarin.Forms。
简单说说Xamarin的安装,只要保持vs 2015的最新,即目前的Update2,在修复选项中的跨平台移动开发中选择Xamarin就行了,他会主动勾选其他所必需的,然后点击下一步,等待它完成就行了,正常情况呢,Android SDK会安装失败,但是你的C:\Program Files (x86)文件加下会多一个Android名称的文件夹,你一路点进去会发现一个SDK Manager的应用程序,你运行后,你发现没有多少安装项,这是因为你。。。没。。。翻。。。墙!但是我劝你也别FQ了,Android SDK整个安装下来欻不多要26G,你真要FQ,也得下载到猴年马月了,土豪除外,再说了26个G的SDK我怎么舍得让它占用我的C盘,比vs都大很多啊,不要担心,直接把Android文件夹剪切到你希望的盘中就行了,JDK、NDK同样啊(占的不多这两个我就没移动),现在再来说说这26个G的SDK怎么下载。。。当然是国内镜像了,http://www.androiddevtools.cn/这个地址,拿好(以前开发安卓的除外),我选的是mirrors.neusoft.edu.cn,端口号80(别问我为什么,因为最初我懵逼的时候,百度出来的都是这玩意儿),JDK就不说了,应该都知道,不知道了就算了,NDK简单说就是google提供的C/C++的开发APP的组件,Xamarin就是基于C实现跨平台开发的,所以如果你把NDK删除了,是编译不过的,安装就简单说这么多。
这段呢。。。就简单的说下Hello world!,新建项目选择Cross-platform,选择下面红圈里面的第一个(别问为什么,我也不知道,因为官方示例就是选的这个,来个大神解释下呗,或者谁英语水平不错,到stack overflow提个问,然后留个言告诉下我),反正红圈里面的第三个是类库,这个没得跑。

当然项目创建的过程中,你懂的你可能或报错,具体的忘了,貌似是什么值不能为null,value:path1之类的吧,这个就是Android SDK没有下载的原因,在工具->选项中找到Xamarin节点,点击查看,你就会明白了,如果你不知道如何下载SDK,看上面那段应该能解决。

好,到这里,应该已经创建了一个项目了(我只有安卓,没有苹果,所以后面的实践也只代表安卓项目),然后让我们运行它,我擦。。。。妈蛋,又报错!淡定!到了这一步,已经离万里长征的第。。。。。。。。。一步了不远了,如果正常的话,你能在你的错误列表中找到下面类似的错误,你也只需找到这种错误(其他的都是“误导”),因为其他的我也不知道,也帮不了你!

这个错误你也看到很简单了,下载他叫你下载的就行了(当然根据个人的情况,下载的是不一样的,我这图里面是让下载r10.zip,这个后来卸载了,大多数是下载r22.zip,貌似),完了,你会得到一个压缩包,但是别听它的话,把压缩包放到他说的这个文件夹里面,打开后面的本地路径(路径到Xamarin就行了,后面的没用),在里面找到zips文件夹,打开,你会看到里面有一个名称类似Guid的压缩包,复制下它的名字,重名名到你刚刚下载的压缩包上,然后删掉zips中的压缩包,把你刚刚重命名下载的压缩包拷贝或者剪切进去就行了,然后你就能顺利的编译你得安卓项目了。
就到这里了,我也就只躺了这几个坑!
Xamarin.Forms学习之初的更多相关文章
- Xamarin.Forms学习之Platform-specific API和文件操作
这篇文章的分享原由是由于上篇关于Properties的保存不了,调用SavePropertiesAsync()方法也不行,所以我希望通过操作文件的方式保存我的需要的数据,然后我看了一下电子书中的第二十 ...
- Xamarin.Forms学习之Page Navigation(一)
在最初接触Xamarin.Forms的时候,我是跟着Xamarin官方的名为“learning-xamarin-ebook”的pdf文档进行学习的,我在成功运行Hello world程序之后,我开始跟 ...
- Xamarin.Forms学习之XAML命名空间
大家好,我又悄咪咪的来了,在上一篇的Xamarin文章中简单介绍了Xamarin的安装过程,妈蛋没想到很多小朋友很感激我,让他们成功的安装了Xamarin,然后......成功的显示了经典的两个单词( ...
- Xamarin.Forms学习系列之Android集成极光推送
一般App都会有消息推送的功能,如果是原生安卓或者IOS集成消息推送很容易,各大推送平台都有相关的Sample,但是关于Xamarin.Forms的消息推送集成的资料非常少,下面就说下Xamarin. ...
- Xamarin.Forms学习之位图(二)
上篇文章分享了如何加载网络图片和PCL中的图片,所以今天继续分享关于如何加载平台的内嵌图片,在这之前说一下上篇文章开头的一个问题:为什么不能加载UWP项目,这是因为我升级了UWP的SDK,而Xamar ...
- Xamarin.Forms 学习系列之优秀UI收集
1.各种优秀UI例子 https://github.com/jsuarezruiz/xamarin-forms-goodlooking-UI 输入框例子 https://github.com/enis ...
- Xamarin.Forms学习系列之Syncfusion 制作图形报表
Syncfusion是一家微软生态下的第三方组件/控件供应商,除了用于HTML5和JavaScript的控件外,他们产品还涉及如下领域: WEB ASP.NET MVC ASP.NET WebForm ...
- Xamarin.Forms学习系列之SQLite
在App中我们通常不会实时获取服务器数据,会在用户手机中保存历史数据,这个时候就需要用到数据库SQLite,由于微软的封装,在Xamarin中操作SQLite非常简单,类似EF的操作. 1.我们需要在 ...
- Xamarin.Forms 学习系列之底部tab
App中一般都会有一个底部tab,用于切换不同的功能,在Xamarin中应该制作底部tab了,需要把Android的TabbedPage做一次渲染,IOS的则不用,接下来说下详细步骤: 1.在共享项目 ...
随机推荐
- S2S3H4 整合代码示例
主要代码列举: web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app versi ...
- 深入分析JavaWeb Item22 -- 国际化(i18n)
一.国际化开发概述 软件的国际化:软件开发时,要使它能同一时候应对世界不同地区和国家的訪问,并针对不同地区和国家的訪问.提供对应的.符合来訪者阅读习惯的页面或数据. 国际化(international ...
- Angular2升级到Angular4
angular4终于在两天前发布了正式版本,那么怎么升级呢?其实angular2和angular4之间属于平滑过渡,并不像1和2之间颠覆性的重写代码. npm uninstall -g @angula ...
- Notes from Data Guard
There are two types of Standby databases: 1, Physical standby database block-for-block basis the phy ...
- AIX下RAC搭建 Oracle10G(六)dbca建库
AIX下RAC搭建系列 AIX下RAC搭建 Oracle10G(六)dbca建库 环境 节点 节点1 节点2 小机型号 IBM P-series 630 IBM P-series 630 主机名 AI ...
- atitit.MIZIAN 陕北方言 特有词汇 大词典 attilax 整理 a--g v1 q31.xlsx
atitit.MIZIAN 陕北方言 特有词汇 大词典 attilax 整理 a--g v1 q31.xlsx 1 Mizian陕北方言 english英语 spain西班牙语 cantonese粤 ...
- MII_GMII_RGMII_RMII_SMII_SSMII_TBI_RTBI
简介 MII是英文Medium Independent Interface的缩写,翻译成中文是“介质独立接口”,该接口一般应用于以太网硬件平台的MAC层和PHY层之间,MII接口的类型有很多,常用的有 ...
- Android JNI和NDK学习(03)--动态方式实现JNI(转)
本文转自:http://www.cnblogs.com/skywang12345/archive/2013/05/23/3092491.html 前面总结了静态实现JNI的方法,本文介绍如何动态实现J ...
- linu保持远程会话
django的server启动后,若关闭ssh会就会自动切断进程,结汇对话 命令scree会保持这个会话,在关闭ssh后,仍然能访问 shell下 1screen 进入后 2启动server 关闭ss ...
- JavaScript-4.5 事件大全,事件监听---ShinePans
绑定事件 <input type="bubtton" onclick="javascript:alert('I am clicked');"> 处理 ...