本文译自Android官方技术文档《Migrating from IntelliJ Projects》,原文地址:http://tools.android.com/tech-docs/new-build-system/migrating-from-intellij-projects。
上一篇介绍了如何上一篇介绍了如何把一个Eclipse上的Android项目迁移到 Android Studio,这一篇继续介绍对 IntelliJ项目的迁移。
翻译不易,转载请注明CSDN博客上的出处:
http://blog.csdn.net/maosidiaoxian/article/details/42736561
翻译工作耗时费神,如果你觉得本文翻译得还OK,请点击文末的“顶”;如有错讹,敬请指正。谢谢。
IntelliJ 项目迁移
在未来,我们可能会在Android Studio 中提供自动迁移的选项。
现在,将您的 IntelliJ 项目迁移到 Android Gradle 项目 (它可以导入到 IntelliJ 然后在 IntelliJ中直接支持),需要遵循以下步骤:
- 创建一个基本的“build.gradle”文件。与你在创建一个新项目时由 Android Studio 所创建的默认 Gradle 文件文件,下面的 gradle 文件将把源代码目录指向现有文件夹 (例如
res/
,src/
)
而不是用 Gradle 项目的默认新目录结构 (src/main/java/
,src/main/res/
等)。下面给出一个示例 gradle 文件。 - 确定您正在使用哪一个库项目(如 ActionBarSherlock)。在 Gradle 中你不再需要把这些库作为源代码项目加进去;你可以把它们简单地用依赖来引用,并且构建系统将处理接下来的部分;进行下载,合并资源和清单项,等等。对于每个库,会查找相应的AAR库的依赖名称(前提是,所讨论的库已经被作为一个android 库归档文件被更新),然后把它们添加到依赖的部分中去。
- 为找到关于库的合适的声明语句,你可能会发现以下博客对你有用:http://gradleplease.appspot.com/
- 通过在您的项目中运行
gradle assembleDebug
可以测试您的构建。如果你之前不是用 Gradle 来构建的,需要从 http://www.gradle.org/downloads 中安装它。请注意,当您通过
Studio 创建新项目时,我们会在项目的根目录创建一个 gradle wrapper 脚本 (“gradlew”和“gradlew.bat”),所以该项目的任何用户只需在你的项目中运行“gradlew assembleDebug”等命令,gradle 就会自动下载和安装。然而,您现有的 IntelliJ 项目大概还没有这个 gradle 脚本。 - 注意,IntelliJ 的 Android 项目一般遵循和 Eclipse ADT 项目相同的结构,所以Eclipse
迁移指南中的介绍可能对你会有所帮助。
build.gradle:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:0.5.+'
}
}
apply plugin: 'android'
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
}
android {
compileSdkVersion 18
buildToolsVersion "18.0.1"
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
// Move the tests to tests/java, tests/res, etc...
instrumentTest.setRoot('tests')
// Move the build types to build-types/<type>
// For instance, build-types/debug/java, build-types/debug/AndroidManifest.xml, ...
// This moves them out of them default location under src/<type>/... which would
// conflict with src/ being used by the main source set.
// Adding new build types or product flavors should be accompanied
// by a similar customization.
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}