前言:

本来很久之前想弄这玩意,不过因为各种原因,所以没弄。

今天有位前辈提出需求。说想让Eclipse的Android项目逐步走向Android Studio,但是又担心Android Studio一时三刻适应不过来。

说能不能不改变源代码的主要工作目录(在Eclipse的android project root/的 src、res、lib、AndroidManifest.xml四个目录)来在Android Studio上开发呢?

大前提:

我当看到这篇博客的看官已经对Android Studio有足够熟悉

(怎么才算足够熟悉呢?)

1.起码你的Android Studio已经能运行起来。而不是像其他的同学说。我的Android Studio一直跑不起来。

2.知道Android的构建工具是Gradle是什么玩意?起码你环境(命令行CMD)上敲入gradle -v 能见到你的Gradle version

3.知道Android Studio的Project相当于Eclipse的Workspaces ,Module 相当于Eclipse的project

4.知道Android Studio的Android Module root目录分布 (build,libs,src以及build.gradle文件),以及里面都是些什么东西。

开始正文吧:

如果已经投向Android Studio的同学大可以不看这篇玩意。因为你们已经很熟悉Android Studio了。

1.如上题目。Eclipse与Android Studio这两个IDE的Android项目因为工作目录不相同,所以不能很好的兼容开发。

如果看了某些文章的话。(http://www.tuicool.com/articles/2q6fMr),

知道Android project 打包方式 (Eclipse使用Ant,Android studio 是用Gradle)

那既然他们本来不一样的打包方式,怎么切换IDE来进行开发呢?

2.我们知道Google 为了让更多的Android开发者的IDE从Eclipse 转去Android Studio。就有一个操作。就是能直接把导入Eclipse的Android project

看到这里。同学说。你这是废话嘛?下面还要继续看不?

虽然可以直接导入项目,但是导入进去后,发现项目在Android Studio的工作目录已经发生翻天覆地的变化了。(其实就是变成了Android studio的项目而已)

3.正因为有上面两点,所以本文才有需求出现。

(其实本文工作原理很简单的。就是为了适应在Android studio上运行而改变一下Gradle的脚本,至于Gradle的脚本怎么写。下面会提到。)

准备工作:

1.新建好一个能运行的(HelloWorld) 的Android 项目。

2.右击该死的项目导出

我假如你只打开一个项目。后面的步骤就一直Next就好了。

3.为了明显表现多了哪些文件。所以就用SVN的项目来做Demo。

如图的多出的文件(build.gradle,gradlew,gradlew.bat)与及文件夹(gradle)

其中只有build.gradle和文件夹(gradle/wrapper)中的gradle-wrapper.properties有用。

(别急着删除其余的,其他你只是不用修改他而已,不是让你删除它。

(gradlew,gradlew.bat 这两玩意是给 玩 “命令行” 的人用的。至于你用哪一个呢?就看你哪个系统了。

后话:我一开始都感觉这两玩意是没有用的。

(因为我配置Gradle在环境了。一直用着gradle命令。没有用gradlew,这个后面带有w的gradlew)

其实这个gradlew是你当前项目中的gradle命令。

如果你执行gradle编译这个项目。很可能遇到这样的话

[

Gradle version 1.10 is required. //你当前项目需要用的版本
Current version is 2.3. //你环境用的gradle版本
If using the gradle wrapper,
try editing the distributionUrl in %项目目录%\gradle\wrapper\gradle-wrapper.properties to gradle-1.10-all.zip

]

或者某些无聊的问题。

))

所以如果你不想出错的话。一般就用gradlew.bat来操作吧。毕竟别人项目指定这个版本。

gradle-wrapper.properties 这个文件说有用,也可以,说没有用,也可以

(这个文件控制你用哪一个版本的Gradle来构建项目,

因为某些原因(也跟人品有关系的),突然就用不了,

人品好时就不用换就能用了。

人品不好就需要你更换一下版本号。

至于版本号,你第一次用的话,就只能上去https://services.gradle.org/distributions/这里找一下。(这个是标配的网址),

有些时候慢得可怜。你大可以上官网下载。https://gradle.org/downloads/,下好再丢到相应版本号文件下面就好。

还有其他方法的。不过本人比较懒。而且公司网络是HK的。所以很快就下载好了。

)

build.gradle 只是把你的Eclipse的信息翻译在这个配置文件(这玩意就是你在Android studio打包用的)

4.现在你的项目已经整合了Gradle了。现在只能试试能用不。

我本人Eclipse已经装了StartExplorer 这个插件,所以直接在这个项目下打开CMD,敲入gradle -gui(这个是gradle 源生图形化工具)

然后你就见到基于你那个build.gradle的所有命令了

(我当时人品不好又遇到这个问题,至于解决方案,上面讲了。自己看看上面吧。)

5.我假设你已经在刚才的Gradle图形化工具执行(gradle installBug或者 gradle iB(驼峰命令。你懂的))成功。

那我们就转移去Android Studio中导入我们这个项目。

这点是有要求的。

一般我们导入项目。就是傻乎乎的导入项目的目录

如果这样导入的话。Android Studio就当你的项目是Eclipse项目导入进来(只是不帮你变化项目目录结构),不过Android Studio只识别一个build.gradle文件。

这是你如果是一个刚刚使用Android studio的同学。 这回你惨了。你肯定花上不止一两个小时。解决这样的问题。(心里有千万只草泥马跑过,在埋怨Android studio的开发者)

正确的做法是在导入时,点击你的刚刚在Eclipse导出的build.gradle文件来导入到Android Studio。

这时。同学们就看到你的Eclipse的项目在Android studio这个IDE了。

6.这时看到清楚一点的同学。发现怎么与Eclipse的目录不一样呢?

其实实际上目录上没有发生改变。只是。你的项目还有问题!

这个问题在下面的 0:Message 一般错误都在这里显示的。

看到上面两张图都有一个共同的错误吧,因为你当前Android studio使用依赖包是 1.2.3

而你的build.gradle文件依赖着还是下面这句

  dependencies {
  classpath 'com.android.tools.build:gradle:0.12.+'
  }

所以你先把你的 classpath 'com.android.tools.build:gradle:0.12.+' 改为 classpath 'com.android.tools.build:gradle:1.2.3'

这是你再保存。按一下 "Ctrl + F9" 运行一下项目。

这时又出现一个错误了。(这里我黏贴一下吧。因为很多人遇到这个错误)

Error:Unable to load class 'org.codehaus.groovy.runtime.typehandling.ShortTypeHandling'.
Possible causes for this unexpected error include:<ul><li>Gradle's dependency cache may be corrupt (this sometimes occurs after a network connection timeout.)
<a href="syncProject">Re-download dependencies and sync project (requires network)</a></li><li>The state of a Gradle build process (daemon) may be corrupt. Stopping all Gradle daemons may solve this problem.
<a href="stopGradleDaemons">Stop Gradle build processes (requires restart)</a></li></ul>In the case of corrupt Gradle processes, you can also try closing the IDE and then killing all Java processes.

解决办法就是:就是把你的gradle-wrapper.properties换一下。换一个高级一点的Gradle Version. 这个然后在编译一下,这时奇迹出现了。

你的Android Studio 项目目录居然变成Eclipse那样,这时,如果没有什么意外。就可以直接点击那个三角符号。运行项目了。

(虽然在项目工作根目录中多了不少的文件,不过那些文件不影响项目的开发和打包,所以来说,算可以跨IDE开发了)

本文就说到这里吧。去吧。骚年。好好体验Android studio吧。

关于Eclipse如何加入Gradle文件与Android Studio两个平台一起开发,工作目录不发生变化的更多相关文章

  1. 如何将Eclipse中的项目迁移到Android Studio 中

    如何将Eclipse中的项目迁移到Android Studio 中 如果你之前有用Eclipse做过安卓开发,现在想要把Eclipse中的项目导入到Android Studio的环境中,那么首先要做的 ...

  2. [转]-如何将Eclipse中的项目迁移到Android Studio 中

    英文地址:http://developer.android.com/sdk/installing/migrate.html 翻译:Android Studio 中文组(大锤译) 如果你之前有用Ecli ...

  3. studio--如何将Eclipse中的项目迁移到Android Studio 中

    如果你之前有用Eclipse做过安卓开发,现在想要把Eclipse中的项目导入到Android Studio的环境中,那么首先要做的是生成Build Gradle的文件.因为Android Studi ...

  4. 如何将Eclipse中的项目迁移到Android Studio中

    如果你之前有用Eclipse做过安卓开发,现在想要把Eclipse中的项目导入到Android Studio的环境中,那么首先要做的是生成Build Gradle的文件.因为Android Studi ...

  5. Android开发学习1----AndroidStudio的安装、创建第一个Android Studio文件、Android Studio界面介绍和HelloWord!

    移动开发的工具有很多:Android Studio,eclipse,Hbuilder等,其中,现如今最火的开发工具是Android Studio,Android Studio是谷歌自己推出的一款集成开 ...

  6. 安卓工作室 文件浏览器 android studio File browser

    安卓工作室 文件浏览器 android studio  File browser 作者:韩梦飞沙 Author:han_meng_fei_sha 邮箱:313134555@qq.com E-mail: ...

  7. Introducing Gradle (Ep 2, Android Studio)

    https://www.youtube.com/watch?v=cD7NPxuuXYY    Introducing Gradle (Ep 2, Android Studio) https://www ...

  8. Android零基础入门第13节:Android Studio配置优化,打造开发利器

    原文:Android零基础入门第13节:Android Studio配置优化,打造开发利器 是不是很多同学已经有烦恼出现了?电脑配置已经很高了,但是每次运行Android程序的时候就很卡,而且每次安装 ...

  9. Eclipse混淆文件导入Android Studio Gradle编译报input jar file is specified twice

    Eclipse项目中的混淆配置文件 复制到AS中 在混淆的过程中提示如下错误     Error:Execution failed for task ':app:proguardDemoRelease ...

随机推荐

  1. Java之所有对象的公用方法>8.Obey the general contract when overriding equals

    Overriding the equals method seems simple, but there are many ways to get it wrong, and consequences ...

  2. java 中文及特殊字符校验

      java 中文及特殊字符校验 CreateTime--2017年8月25日16:54:50 Author:Marydon 一.参考链接 http://blog.csdn.net/imduan/ar ...

  3. redis数据淘汰策略

    概述 在 redis 中,允许用户设置最大使用内存大小 server.maxmemory,在内存限定的情况下是很有用的.譬如,在一台 8G 机子上部署了 4 个 redis 服务点,每一个服务点分配 ...

  4. django之创建第9个项目-管理后台admin

    django之创建第9个项目-管理后台admin配置 1.配置setting文件INSTALLED_APPS = (    'django.contrib.auth',    'django.cont ...

  5. java 怎么实现接收控制台输入?

    //接收键盘输入: //怎么实现接收控制台输入? import java.util.Scanner; //Test.java import java.util.Scanner; public clas ...

  6. HttpServletResponse对象(二)

    一.HttpServletResponse常见应用——生成验证码 1.1.生成随机图片用作验证码 生成图片主要用到了一个BufferedImage类,

  7. Linux系统下批量创建用户

    Linux批量创建用户 [root@ldapserver ~]# ) ; do useradd -d /home/ldapuser$i ldapuser#i; done [root@ldapserve ...

  8. 转:OGRE 源码编译方法

    编译及运行环境:Windows 7 . vs2010. 编译前的准备: 1.想编译OGRE,最起码要有OGRE的源码吧.可以去官方网站下载最新的源码包,我这里用的是1.7.2版本的,下载下来的文件叫 ...

  9. 利用RecyclerView实现无限轮播广告条

    代码地址如下:http://www.demodashi.com/demo/14771.html 前言: 公司产品需要新增悬浮广告条的功能,要求是可以循环滚动,并且点击相应的浮条会跳转到相应的界面,在实 ...

  10. ASP.NET 动态查找数据 并且生成xml文档 同时使用xslt转换为xhtml

    前言 xsl是一门标签解析语言,很适合做动态网页的前台标签 www.bamn.cn 1 首先是aspx页面 添加一个输入框 按钮 还有一个用来显示解析后的xhtml代码的控件 <form id= ...