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.在共享项目 ...
随机推荐
- 【Python3 爬虫】09_正则表达式(re.math()、re.search()、re.sub()、全局匹配函数)
re.math()函数 从源字符串的起始位置匹配一个模式 语法:re.match(pattern, string, flag) 第一个参数代表对应的正则表达式,第二个参数代表对应的源字符,第三个参数是 ...
- [1-7] 把时间当做朋友(李笑来)Chapter 7 【从此时此刻开始改变】 摘录
大多数事情都需要提前准备,也都可以提前准备.认识到这一点本身就几乎是一切改变的起点. 任何动作演练到一定的次数,就能做到甚至在无意识的情况下都可以准确完成的地步.而他只不过是把这个原理应用到了极致而已 ...
- MATLAB读取黑白图像显示却是黑色,24位深转8位深黑白图像解决方法
1.24位深转8位深: ps将24位深原图.png保存为GIF图256即为8位,再将8位gif图转为需要的.png,即转为8位深png图. 2.MATLAB读取黑白图像显示几乎全为黑色: 这是最近处理 ...
- 窥探try ... catch与__try ... __except的区别
VC中的这两个东西肯定谁都用过, 不过它们之间有什么区别, 正好有时间研究了一下, 如果有错误欢迎拍砖.基于VC2005, 32位XP 平台测试通过. 估计对于其他版本的VC和操作系统是不通用的. 1 ...
- Python 的数据表示
一.常量.变量和对象 1.常量:是指在程序的执行过程中不变的量.如:1,2,3,4,……,true.false 也有一些包含在模块中的用符号表示的常量,常用的如math模块中的pi和e,如: > ...
- MATLAB 的字符串分析
MATLAB的字符串分析. 字符串实际上是指1Xn 的字符数组. MATLAB软件具有强大的字符串处理功能,提供了很多的字符或字符串处理函数,包括字符串的创建.字符串的属性.比较.查找以及字符串的转换 ...
- webpack 与 热编译webpack-dev-server
webpack.config.js 只需要注意加大加粗的地方. var webpack = require("webpack"); var HtmlWebpackPlugin = ...
- vs2017 生成代码策略 旧的 ObjectContext
新版本的VS中已经去掉了生成ObjectContext的功能,需要手动下载一个生成ObjectContext的T4模板.在模型设计器的上下文菜单中选择添加代码生成项,在联机模板中选择对应EF版本的Ob ...
- GEEK学习笔记— —程序猿面试宝典笔记(三)
所谓笔记,就是比較个人的东西,把个人认为有点意思的东西记录下来~~ 程序猿面试宝典笔记(一)基本概念 程序猿面试宝典笔记(二)预处理.const和sizeof 程序猿面试宝典笔记(三)auto_ptr ...
- dubbo_分布式Rpc服务
dubbo是一个分布式的服务架构,可直接用于生产环境作为SOA服务或Rpc服务 1.下载,编译,运行demo 1).安装zookeeper 下载:http://apache.claz.org/ ...