说到使用AndroidStudio,除了新建的项目,咱们都会面临的问题是原先Eclipse的代码该怎么导入到AndroidStudio中使用。
这方面相关的资料还比较少,本身摸索了一下,总结出这篇博客,但愿能让开发者少走些弯路。
OK,进入正题。eclipse
Google为了让咱们更加方便的使用AndroidStudio,提供了两种导入Eclipse代码的方式:一种兼容Eclipse,一种是全新的Android Gradle Project.
这里,咱们先从兼容模式提及。maven
这种模式下,保证了Eclipse时代的代码目录结构,总体操做和使用和Eclipse也差很少。
最重要的,当你使用AndroidStudio时,你或者其余人也能够方便的使用Eclipse,互不干扰。ide
导出后,因为adt好久没更新,须要手动改一些参数,才能保证正常使用。
为了保证可以讲解的更清晰,下面分状况讲解一下:gradle
这种状况下你看到的目录是这样的
ui
其实改动方法和上面同样,只须要注意是改动整个项目的build.gradle和 /gradle/wrapper/gradle-wrapper.properties。
而不要尝试去主工程或者库工程里面找build.gradle
google
已经建立过工程的打开AndroidStudio会直接进入之前的工程
这时候能够选择File-->Import Project, 选中后点击ok
使用IDE的打包:
在兼容模式只打主工程的,库工程没有加入到apk中,致使没法正常运行。
截止到1.0.2,AndroidStudio依然存在这个bug。
由于这个bug的存在,你在兼容模式可使用AndroidStudio编程,打包时开启Eclipse。
OK,兼容模式介绍到这里。 咱们开始介绍主角: Android Gradle Project。 这里必须说明的是Google更但愿咱们使用这种方式,若是没有什么团队的压力,仍是使用这种吧。
这个地方须要详细说一下
这里上面两个选项暂且不说,勾选上。
最后一项提一下: 将Module名建立为camelCase风格。
驼峰式,这个搞Java的都会熟悉,camelCase表示首字母小写的驼峰式风格,CamelCase表示首字母大写的驼峰式风格。
不勾选这个选项意味着你原先的工程名是啥样,转换完就是啥样。
这里的AndroidStudio会去分析Eclipse工程下的. project文件,里面的name就是你在Eclipse中看到的工程名。(没有此文件时会使用此工程的文件夹名。)
固然也有例外,好比countly-sdk-android转换完就成了countlysdkandroid,下划线我就不知道了,这个没有再仔细研究规则,不过CamelCase会保持正常。
这里我比较喜欢让Module首字母大写(不知道为啥看这首字母小写难受),原来的工程就是CamelCase风格,我就不勾选了。
固然若是这里没注意直接转换成了camelCase但最后又不喜欢怎么办? 能够看后面《如何更改Module名称》部分。
OK,配置完点击Finish便可
以后须要通过一段时间的转换。成功后能够看到import-summary.txt,这个文件很是有用,后面会讲到。
到这里,你的应用其实已经能够经过AndroidStudio正常编译,你也能够写代码去了。
但我但愿你还能继续看下去,由于这个成功后弹出来的import-summary.txt写了些很重要的东西。
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。
之因此说这部分重要,是由于AndroidStudio经过这段文字告诉了你,它导入的时候忽略了哪些文件。
也就是说这部份内容,它没给你拷进来,你要是不去本身拷贝,那这部分你新Gradle工程里面就没有了。
这里选一些典型的ignore文件来看一下:
From SDK: * proguard-project.txt * proguard.cfg From UI: * cert\ * cert\cert From CrosswalkWebview: * ant.properties * build.xml From SlidingMenuLibrary: * LICENSE.txt * pom.xml
给上面的忽略文件分分类:
须要留意你的Ignored Files部分,并根据本身的须要手工拷贝到新工程中。
在Replaced Jars with Dependencies部分,有以下文字:
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部分
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都被替换了,但是你在当前工程里再也找不到了。这是为何?
跟我来看下面的操做:
OK,到这里就能够知道真相了,在AndroidStudio中你能够添加在线的库或jar包,添加完成后你就能够和平时同样正常使用。
而你的同事在打开这个工程的时候会即时下载,保证大家的代码都能正常运行。
这也是为何当你的工程转换完毕后,有些jar和Library消失的缘由。他们被转成在线的了。
这部分在讲你的目录结构变化,基本上能够认为他在废话,没什么看的必要了。
呵呵,略过吧
This import summary is for your information only, and can be deleted
after import once you are satisfied with the results.
你一旦以为本身的工程没问题了,就能够把这个文件删除了。
经过上面的步骤,你的项目已经转换了目录结构,这时候你能够提交代码,供其余同事下载使用了。
其余同事把代码下载下来,他们所须要引入的是一个Android Gradle Project了。
这里须要提醒的是,对于含有库工程的项目而言, 须要指定整个项目的目录,仅仅指定主工程是没用的。
到这里咱们须要停下来总结一下:
在Module上右键refactor--> rename ,固然能够看到有快捷键shift + F6, 这样就能够改变Module的名称了。
可是尚未结束,这样没有更改引用这个Module的地方。
若是他是一个库工程,你还须要继续去查看引用它的地方并进行修改。主要是其余Module的Gradle文件。
Tips:
选中Module,ctrl+c便可复制工程名,在相关Gradle文件中ctrl+v替换成新的名称便可。
最后,别忘了,settings.gradle,这里include的module名称也须要更改。 至此,算是修改结束。
一切修改完毕,点击弹出提示中的Sync Now,让工程从新构建
构建结束后就一切正常了。
固然你若是对文件夹的名称也看着不顺眼,也能够去修改文件夹名称,改变后记得从新导入便可。
以上就是两种导入的方式的介绍,整体来讲第一种适合无奈的时候提早熟悉AndroidStudio,第二种则是更推荐的方式。 不管采用哪种,都但愿你能尽快的接触AndroidStudio,体验它的强大。