使用android studio将eclipse项目改造成gradle项目中踩过的坑

       本文中部分内容是看过了张大神的博客后分享出来的。

       其实android studio使用起来和之前习惯用eclipse开发区别并不大,只是一些快捷键发生了变化,这个是需要你去熟悉和设置的,区别比较大之处,之前eclipse开发是通过adt来进行项目编译、打包的,只是现在android studio中把adt这块彻底抛弃了,引入了gradle这个自动化构建工具。而恰恰上手难点之处便在于gradle这块,所以对于android studio的使用还是需要对gradle这个工具了解比较多,方能驾驭轻熟。

        其实android studio 这个工具早在2013年的时候google就推出来了,但是刚推出来的时候大家并没有去用他,那个时候对于这个工具的介绍也是很少,这也是造成普及不多的重要原因。每当一个新的东西出来了,总是需要时间接纳它的到来,这就也是我们作为程序员的基本素养。而到android studio2.0推出后,这个趋势越发明显,有种再不用android studio你就彻底out了。

         首先介绍下android studio这个工具。android studio有以下这么多优点:

  • 1、Google推出的

毫无疑问,这个是它的最大优势,Android Stuido是Google推出,专门为Android“量身订做”的,是Google大力支持的一款基于IntelliJ IDEA改造的IDE,这个应该能说明为什么它是Android的未来

  • 2、速度更快

Eclipse的启动速度、响应速度、内存占用一直被诟病,相信大家这点应该深有体会,而且经常遇到卡死状态。Studio不管哪一个方面都全面领先Eclipse

  • 3、UI更漂亮

I/O上演示的那款黑色主题真是太棒了,极客范,Stuido自带的Darcula主题的炫酷黑界面实在是高大上,相比而言Eclipse下的黑色主题太low了

  • 4、更加智能

提示补全对于开发来说意义重大, Studio则更加智能,智能保存,从此再也不用每次都 Ctrl + S了。熟悉Studio以后效率会大大提升。

  • 5、整合了Gradle构建工具

Gradle是一个新的构建工具,自Studio亮相之处就支持Gradle,可以说Gradle集合了Ant和Maven的优点,不管是配置、编译、打包都非常棒。

  • 6、强大的UI编辑器

Android Studio的编辑器非常的智能,除了吸收Eclipse+ADT的优点之外,还自带了多设备的实时预览,相对这对Android开发者来说简直是神器啊。

  • 7、内置终端

Studio内置终端,这对于习惯命令行操作的人来说简直是福音啊,再也不用来回切换了,一个Studio全部搞定。

  • 8、更完善的插件系统

Studio下支持各种插件,如Git、Markdown、Gradle等等,你想要什么插件,直接搜索下载。

  • 9、完美整合版本控制系统

安装的时候就自带了如GitHub, Git, SVN等流行的版本控制系统,可以直接check out你的项目。

        面对众多的优点,所以作为android开发人员有什么理由不去使用它以及让你的项目飞起来呢?


        刚开始用的时候真的觉得好难用,难用是因为它的快捷键和之前的大不一样,但是这个只是一个过程,需要你下定决心,顶多花数小时就可以轻松适应了。下面说下快捷键如何设置:

Studio默认的快捷键和Eclipse差别很大,但是Studio强大的地方在于通过设置你可以一直沿用Eclipse风格的快捷键,这样对于那些Eclipse过渡来的同学省了很多学习成本。

Preferences -> Keymap 然后就可以选择你想要的快捷键,这里不止可以选择Eclipse,还可以选择 EmacsNet Beans 等编辑器的快捷键

对于新手们或者对Eclipse没有好感的同学们,肯定想学习默认的Studio快捷键,下面整理了下常用的一些快捷键,更多的快捷键还需要大家自己去习惯适应。(我自己选择的是Mac OS X 10.5+)

Action Mac OSX Win/Linux
注释代码(//) Cmd + / Ctrl + /
注释代码(/**/) Cmd + Option + / Ctrl + Shift + /
格式化代码 Cmd + Option + L Ctrl + Alt + L
清除无效包引用 Option + Control + O Alt + Ctrl + O
查找 Cmd + F Ctrl + F
查找+替换 Cmd + R Ctrl + R
上下移动代码 Option + Shift + Up/Down Alt + Shift + Up/Down
删除行 Cmd + Delete Ctrl + Y
扩大缩小选中范围 Option + Up/Down Ctrl + W/Ctrl + Shift + W
快捷生成结构体 Cmd + Option + T Ctrl + Alt + T
快捷覆写方法 Cmd + O Ctrl + O
快捷定位到行首/尾 Cmd + Left/Right Ctrl + Left/Right
折叠展开代码块 Cmd + Plus,Minus Ctrl + Plus/Minus
折叠展开全部代码块 Cmd + Shift + Plus,Minus Ctrl + Shift + Plus,Minus
文件方法结构 Cmd + F12 Ctrl + F12
查找调用的位置 Ctrl + Option + H Ctrl + Alt + H
大小写转换 Cmd + Shift + U Ctrl + Shift + U

自动导包

最后再介绍一个最有用的设置,我们只有每次引用一些类的时候必须要导包,而Studio可以通过设置自动导包,简直太实用了.

到 Preferences -> Editor -> Auto Import -> Java 把以下选项勾上就OK了


        当你把这个适应了其实发现这个只是冰山一角,最难的地方原来是gradle这个工具,你的项目从此开始与它结下不解之缘,这就需要你对gradle有一些基本的认识和了解,要不然你的项目跑不起来,项目跑不起来作为程序员的你已经心急如焚,这个时候给你一条明路想必肯定是雪中送碳了。

        什么是Gradle?Gradle是一种依赖管理工具,基于Groovy语言,面向Java应用为主,它抛弃了基于XML的各种繁琐配置,取而代之的是一种基于Groovy的内部领域特定(DSL)语言。

首先看下目录结构,注意切换到project结构下看项目

使用android studio将eclipse项目改造成gradle项目中踩过的坑_第1张图片


       一个项目中的哪些文件是gradle工具最重要的呢?每一个java代码或者一个android library以及android项目各自都有一个build.gradle文件,这个文件就是用于gradle去管理这个代码包的。你会发现整个项目根目录下还有一个build.gradle文件,这个是去管理整个项目。

使用android studio将eclipse项目改造成gradle项目中踩过的坑_第2张图片

       如上图,黄色框框里面的apply是library表明这个项目是一个库,和之前在eclipse里面的一样,也属于安卓项目,只是用作library了。如果要使用ndk直接在default下配置ndk即可,但是一定要记住要去下载一个ndk,并且在local.propeyties文件下添加一句如下图:

使用android studio将eclipse项目改造成gradle项目中踩过的坑_第3张图片

        否则会提示ndk相关错误,提示你去设置ndk的源路径或者去禁用掉如下图:

使用android studio将eclipse项目改造成gradle项目中踩过的坑_第4张图片

         如果编译过程在发现一直报apache http相关的的资源错误,那是因为你没有加一句

使用android studio将eclipse项目改造成gradle项目中踩过的坑_第5张图片

        加上这句然后同步代码就可以解决了。

        如果你的项目需要在jdk 1.7或者以上的java环境下运行的话,你需要在整个项目根目录下的那个build.gradle文件中加上如下图这句话,然后重新编译项目即可以通过。

使用android studio将eclipse项目改造成gradle项目中踩过的坑_第6张图片


        如果编译过程中报了字符串格式不正确,ue01不正确之类,这个时候是你的那个文件下的编码格式有问题,你需要用其他编辑打开,然后选择编辑编码格式为utf-8 无DOM格式,或者直接是utf-8格式都可以解决此问题。


       这些坑都是在将之前的eclipse项目导入到android studio中发生的,这个坑比较多,并没有列举全,改造的过程中遇到的问题远远不止这些,但是遇到问题不要怕,记住一句话“就没有解决不了的问题,如果有那也是你的方式方法不对”,方法总比问题多,至少在我现在看来,就没有发现一个问题解决不了的,到最后都解决了,只是有些问题你可能花的时间多些,需要你翻阅更多资料,有必要时还需要你,其实想快速解决最好是直接去。

如果有什么问题,可以留言告诉我,我可以帮你解答,如果没有遇到的问题,可以一起讨论解决。



你可能感兴趣的:(android技术)