现在的位置: 首页 > 综合 > 正文

AndroidStudio系列————导入Eclipse代码

2018年02月16日 ⁄ 综合 ⁄ 共 7391字 ⁄ 字号 评论关闭

原地址:将Eclipse代码导入到AndroidStudio的两种方式

说到使用AndroidStudio,除了新建的项目,我们都会面临的问题是原先Eclipse的代码该怎么导入到AndroidStudio中使用。

这方面相关的资料还比较少,自己摸索了一下,总结出这篇博客,希望能让开发者少走些弯路。

OK,进入正题。

Google为了让我们更加方便的使用AndroidStudio,提供了两种导入Eclipse代码的方式:一种兼容Eclipse,一种是全新的Android Gradle Project.

这里,我们先从兼容模式说起。

兼容模式

这种模式下,保证了Eclipse时代的代码目录结构,整体操作和使用和Eclipse也差不多。

最重要的,当你使用AndroidStudio时,你或者其他人也可以方便的使用Eclipse,互不干扰。

实现步骤

1. 从Eclipse中导出Gradle build files

  • 在Eclipse菜单中 File --> Export-->Generate Gradle build files
     将Eclipse代码导入到AndroidStudio的两种方式
  • 接下来会到达警告界面,这里会提示AndroidStudio可以直接导入ADT的工程,先过,后面有直接导入的讲解。
     将Eclipse代码导入到AndroidStudio的两种方式
  • 选中你的项目工程,包括主工程和库工程(Library)。
     将Eclipse代码导入到AndroidStudio的两种方式
  • 确认生成
     将Eclipse代码导入到AndroidStudio的两种方式

2. 修改导出文件参数

导出后,由于adt很久没更新,需要手动改一些参数,才能保证正常使用。

为了保证能够讲解的更清晰,下面分情况讲解一下:

没有库工程,只有主工程

这种情况下你看到的目录是这样的
 将Eclipse代码导入到AndroidStudio的两种方式

  • 首先需要更改的是 build.gradle 文件

    AndroidStudio 1.0 ~ 1.0.2 使用的都是 Android Gradle plugin 1.0.0,因此需要将图中红框内的 0.12.+ 改为 1.0.0
     将Eclipse代码导入到AndroidStudio的两种方式
  • 然后还需要更新Gradle版本,指定为所需要的2.2.1

    在 /gradle/wrapper/gradle-wrapper.properties里面
     将Eclipse代码导入到AndroidStudio的两种方式

含有库工程

其实改动方法和上面一样,只需要注意是改动整个项目的build.gradle和 /gradle/wrapper/gradle-wrapper.properties。

而不要尝试去主工程或者库工程里面找build.gradle
 将Eclipse代码导入到AndroidStudio的两种方式

3. 导入AndroidStudio

  • 进入到AndroidStudio中,选择导入非AndroidStudio工程
     将Eclipse代码导入到AndroidStudio的两种方式
  • 找到需要导入的工程目录,可以看到图标和Eclipse创建的工程不一样。
     将Eclipse代码导入到AndroidStudio的两种方式
  • 点击OK,进入漫长的加载过程,之后就可以正常使用了。
     将Eclipse代码导入到AndroidStudio的两种方式

已经创建过工程的打开AndroidStudio会直接进入以前的工程

这时候可以选择File-->Import Project, 选中后点击ok
 将Eclipse代码导入到AndroidStudio的两种方式

兼容模式下的bug

使用IDE的打包:
 将Eclipse代码导入到AndroidStudio的两种方式

在兼容模式只打主工程的,库工程没有加入到apk中,导致无法正常运行。

截止到1.0.2,AndroidStudio依然存在这个bug。

因为这个bug的存在,你在兼容模式可以使用AndroidStudio编程,打包时开启Eclipse。

OK,兼容模式介绍到这里。 我们开始介绍主角: Android Gradle Project。 这里必须说明的是Google更希望我们使用这种方式,如果没有什么团队的压力,还是使用这种吧。

使用新的目录结构

转换目录结构

  • 打开Import

    • 新用户:
       将Eclipse代码导入到AndroidStudio的两种方式
    • 老用户: File-->Import Project
       将Eclipse代码导入到AndroidStudio的两种方式
  • 直接找到原有的Eclipse工程

    • 单一工程直接导入即可。
    • 有库工程的需要注意,导入一定要指向主工程,而不是整个项目的目录。指向项目目录是无法进行转换的。
       将Eclipse代码导入到AndroidStudio的两种方式
  • 指定目标路径
     将Eclipse代码导入到AndroidStudio的两种方式
  • 这个地方需要详细说一下
     将Eclipse代码导入到AndroidStudio的两种方式

    这里上面两个选项暂且不说,勾选上。

    最后一项提一下: 将Module名创建为camelCase风格。

    驼峰式,这个搞Java的都会熟悉,camelCase表示首字母小写的驼峰式风格,CamelCase表示首字母大写的驼峰式风格。

    不勾选这个选项意味着你原先的工程名是啥样,转换完就是啥样。

    这里的AndroidStudio会去分析Eclipse工程下的. project文件,里面的name就是你在Eclipse中看到的工程名。(没有此文件时会使用此工程的文件夹名。)
     将Eclipse代码导入到AndroidStudio的两种方式

    当然也有例外,比如countly-sdk-android转换完就成了countlysdkandroid,下划线我就不知道了,这个没有再仔细研究规则,不过CamelCase会保持正常。

    这里我比较喜欢让Module首字母大写(不知道为啥看这首字母小写难受),原来的工程就是CamelCase风格,我就不勾选了。

    当然如果这里没注意直接转换成了camelCase但最后又不喜欢怎么办? 可以看后面《如何更改Module名称》部分。

    OK,配置完点击Finish即可

  • 之后需要经过一段时间的转换。成功后可以看到import-summary.txt,这个文件非常有用,后面会讲到。
     将Eclipse代码导入到AndroidStudio的两种方式

到这里,你的应用其实已经可以通过AndroidStudio正常编译,你也可以写代码去了。

但我希望你还能继续看下去,因为这个成功后弹出来的import-summary.txt写了些很重要的东西。

带你看懂import-summary.txt

Manifest Merging

Your project uses libraries that provide manifests, and your Eclipse

project did not explicitly turn on manifest merging. In Android Gradle

projects, manifests are always merged (meaning that contents from your

libraries' manifests will be merged into the app manifest. If you had

manually copied contents from library manifests into your app manifest

you may need to remove these for the app to build correctly.

这段应该都能看懂,无非就是说你Library的清单文件有效啦。

不用手工拷贝到主工程的清单文件中了。以前拷贝过的,要移除才能正确build。

Ignored Files(这个最重要)

之所以说这部分重要,是因为AndroidStudio通过这段文字告诉了你,它导入的时候忽略了哪些文件。

也就是说这部分内容,它没给你拷进来,你要是不去自己拷贝,那这部分你新Gradle工程里面就没有了。

这里选一些典型的ignore文件来看一下:

?
1
2
3
4
From
SDK:* proguard-project.txt* proguard.cfg
From
UI:* cert\* cert\cert
From
CrosswalkWebview:* ant.properties* build.xml
From
SlidingMenuLibrary:* LICENSE.txt* pom.xml

给上面的忽略文件分分类:

  • 确实不需要的:混淆文件、ant的ant.properties与build.xml、maven的pom.xml。
  • 需要再次声明的: LICENSE.txt。不声明属于盗版侵权啊~~
  • 自定义文件夹和文件:cert。 这个文件夹是自己创建的,不属于Android规定的目录,所以AndroidStudio没给拷贝。

需要留意你的Ignored Files部分,并根据自己的需要手工拷贝到新工程中。

Replaced Jars with Dependencies & Replaced Libraries with Dependencies

在Replaced Jars with Dependencies部分,有如下文字:

?
1
2
3
android-support-v4.jar
=> com.android.support:support-v4:
21.0.3
gson-2.3.jar
=> com.google.code.gson:gson:
2.3
joda-time-2.6.jar
=> joda-time:joda-time:
2.6

可以看到jar被替换了。 可以看到工程里面没有了当初添加的jar包。那么jar包去哪了呢?

暂时先留个悬念。

我们继续来看 Replaced Libraries with Dependencies部分

?
1
2
3
ActionbarLibrary
=>
    com.actionbarsherlock:actionbarsherlock:4.4.0@aar
    com.android.support:support-v4:21.0.3

可以看到ActionbarSherlock被替代为了aar(Android ARchive ,jar : Java ARchive)。关于aar的介绍可以看这里,本文就不再详细展开了。

可以看到的是Library和jar都被替换了,可是你在当前工程里再也找不到了。这是为什么?

跟我来看下面的操作:

  • 在Module上右击,选择Open Module Settings
     将Eclipse代码导入到AndroidStudio的两种方式
  • 切换到Dependencies
     将Eclipse代码导入到AndroidStudio的两种方式
  • 点击右侧的加号添加,选择Library dependency
     将Eclipse代码导入到AndroidStudio的两种方式
  • 可以看到这个界面:
     将Eclipse代码导入到AndroidStudio的两种方式

OK,到这里就可以知道真相了,在AndroidStudio中你可以添加在线的库或jar包,添加完成后你就可以和平时一样正常使用。

而你的同事在打开这个工程的时候会即时下载,保证你们的代码都能正常运行。

这也是为什么当你的工程转换完毕后,有些jar和Library消失的原因。他们被转成在线的了。

Moved Files

这部分在讲你的目录结构变化,基本上可以认为他在废话,没什么看的必要了。

Next Steps & Bugs

呵呵,略过吧

最后一句

This import summary is for your information only, and can be deleted

after import once you are satisfied with the results.

你一旦觉得自己的工程没问题了,就可以把这个文件删除了。

导入AndroidStudio工程注意

通过上面的步骤,你的项目已经转换了目录结构,这时候你可以提交代码,供其他同事下载使用了。

其他同事把代码下载下来,他们所需要引入的是一个Android Gradle Project了。

  • 新用户

    • 如果项目中有.idea之类的IntelliJ的文件,开始选择的应该是Open an existing Android Studio project,而不是Import Non-Android Studio project。
    • 如果你下载下来的代码里面只有gradle的文件,即使还是要选Import Non-Android Studio project。
  • 老用户依然使用: File-->Import Project

这里需要提醒的是,对于含有库工程的项目而言, 需要指定整个项目的目录,仅仅指定主工程是没用的。

到这里我们需要停下来总结一下:

  • 如果你导入的是一个Eclipse工程,那么指定主工程目录。AndroidStudio通过分析来帮你完成转换。
  • 如果你导入的是一个AndroidStudio工程,那么指定整个项目的目录 。

附: 如何更改Module名称

在Module上右键refactor--> rename ,当然可以看到有快捷键shift + F6, 这样就可以改变Module的名称了。

但是还没有结束,这样没有更改引用这个Module的地方。

如果他是一个库工程,你还需要继续去查看引用它的地方并进行修改。主要是其他Module的Gradle文件。

Tips:

选中Module,ctrl+c即可复制工程名,在相关Gradle文件中ctrl+v替换成新的名称即可。

最后,别忘了,settings.gradle,这里include的module名称也需要更改。 至此,算是修改结束。

一切修改完毕,点击弹出提示中的Sync Now,让工程重新构建
 将Eclipse代码导入到AndroidStudio的两种方式

构建结束后就一切正常了。

当然你如果对文件夹的名称也看着不顺眼,也可以去修改文件夹名称,改变后记得重新导入即可。

总结

以上就是两种导入的方式的介绍,总体来说第一种适合无奈的时候提前熟悉AndroidStudio,第二种则是更推荐的方式。

无论采用哪一种,都希望你能尽快的接触AndroidStudio,体验它的强大。

声明

欢迎转载,但请保留文章原始出处

作者:GavinCT 

出处:http://www.cnblogs.com/ct2011/

AndroidStudio使用说明

本文下载地址:http://download.csdn.net/detail/li396858359/5611743

 

AndroidStudio。Google5月15日的I/O大会推出的一款AndroidAPP开发软件,公开推出此软件大有使用它取代Eclipse+ADT的开发方式。下面结合我的使用&理解给大家介绍一个简单的使用,通过此说明一般的应用是可以平滑过渡到使用AndroidStudio开发的。说明包裹一下几个部分,安装、首页简介、部分配置项说明、项目创建、项目导入、lib库管理、library项目导入。

安装

软件下载地址:http://developer.android.com/sdk/installing/studio.html.。并在地址处有详细的安装说明,核心意思就是需要有JAVA环境,并配置正确。这一步搞不定的同学百度&Google

首页简介

 

左边是最近的项目列表,AndroidStudio使用的是工程+模块的模式,基本一个项目就是一个工作区。因此左边会有n多的列表项。

新建项目,这个功能基本及时个废吧。原因就是项目结构和eclipse不一样,恕我不能逃脱eclipse的一些限制。

导入项目,可以直接把eclipse创建的项目导入AndroidStudio中。

打开工程,没什么好说的吧

从版本库Check项目,这个功能很强大。可以直接从SVNGIT库中直接得到代码创建工程。

配置,IDE的配置项。

部分配置项说明

点击Configure--Settings

1.主题&取消乱码设置


 

2.编码字体设置,话说默认字体恶心不是一点点。


 

 

3.文件头注释修改&快捷键修改


 

点击Configure--ProjectDefaults--ProjectStructure

1.新建项目默认环境配置


 

2.增加SDK环境


 

3.Library&GlobalLibrary后面再说

点击Configure--ProjectDefaults--RunConfigurations


 

项目创建

由于通过AndroidStudio创建的项目目录结构和Eclipse不一样,对于全新的项目开发或者个人开发或许可用。对于老项目维护和团队中有人还在使用Eclipse的情况下,这个功能就算了吧。

下面一句话说一下这个功能。创建项目填写信息,一路next即可。

项目导入

项目导入,更准确的说是从eclipse导入项目。官方提供了一个导入方法,但实验时出现了一些问题,ADT需要升级,对应的SDK同样需要升级。升级后有引入第三方工程的项目全部出错,原因有点纠结就懒得写了。

下面开始介绍一下项目导入问题,根据官方给出的建议是升级ADT至最新版本,然后再Eclipse项目中生成一个build.gradle的文件,此文件是给新的构建系统使用的。然而同时也指出不生成build.gradle文件也可以。鉴于对新的构建系统不熟悉,还是好好地使用我的ant吧。

正式进入项目导入阶段

1.打开AndroidStudio启动页,选择导入项目,选择目录结构至要导入的项目处。结果如下图。

 

2.OK,进入下一步。结果如下图。


 

3.Next,结果如下图。在这里关于项目名称和项目路径,不建议更改。这样一来可以和eclipse同时使用这个工程,二来我几次测试,改完名称项目就无法导入了。

 

4.下面几步就是一些确认源代码路径、确认导入的jar、确认项目模块等,基本可以无限下一步了,最后完成AndroidStudio会自动打开导入的工程。一般的项目导入到此就算是完成了。下面在介绍一下一些稍微复杂点的项目的导入。

5.从从SVN检出的代码文件夹中导入项目,在最后一步会询问一下是否把一个*.iml文件添加至SVN中管理起来,这个看个人意愿以及公司规定吧。*.iml文件是一个配置文件有的公司可能要求不要把无关文件导入至SVN。这个文件不会影响项目的开发问题,因此可以采取随意的态度。

6.直接从SVN库中导入项目,而不是第5个的那种从已经检出的代码中导入项目。

6.1启动AndroidStudio至启动页,点击CheckoutfromVersionControl--Checkoutfrom--Subversion。结果如下:


 

6.2新增一个SVN仓库,选择至工程目录,点击Checkout。SVN涉及到公司SVN地址,不便写出,这一步可自行操作。点击后结果如下:


 

6.3选择一个目录即可,选后结果如下:

 

6.4下面选择使用哪个svn版本进行格式化,1.7即可。下面开始代码下载。出现弹框选择yes,下面即开始如第5步的代码导入工作。至此从SVN导入项目结束。

lib库管理

AndroidStudioIdea衍生而来,lib库管理和eclipse开发Android时有所差别,复制到libs下的jar包不会自动引入项目中并被使用。需手动添加至项目中使用。一般来说有两种方式

右键导入

1.右键libs下面的jar包,在下面几个的选项中,有一个AddasLibrary。如图:


 

2.点击之,弹框如下:

 

3.选择classesOK,结果如下:


 

可自定义名字、此jar包存在的级别(全局、项目、模块)、在那个模块中使用。OKjar包导入成功

项目配置页面处导入

1.点击红圈处进入项目配置页面。

 

2.进入下面的页面,在此页面可以更改项目的一些配置


 

给项目增加第三方jar包,在此处操作

library项目导入

开发中时常会用到library模式的工程,这种情况在AndroidStudio中怎么做呢。一般可以分为两步。

1.Library项目先导入至AndroidStudio中,导入和一般的项目导入没有差别。

2.打开主项目配置页

 

在第三处,点击加号选择第三项导入library库。

抱歉!评论已关闭.