eclipse => android studio
思路
1 在项目根目录添加 gradle
2 新建 module 代替原来的project,重新指定目录结构使其指向根目录下的资源路径
1 初始化gradle目录
初始化gradle
$ cd PROJECT_ROOT
$ gradle init
$ git st
?? .gradle/
?? build.gradle
?? gradle/
?? gradlew
?? gradlew.bat
?? settings.gradle
配置sdk信息
新建文件 local.properties
文件只有一行,指定sdk路径 sdk.dir=…
$ cat > local.properties
sdk.dir=/home/sctdroid/android_sdk/
^C
$ cat local.properties
sdk.dir=/home/sctdroid/android_sdk/
配置build.gradle
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
}
}
allprojects {
repositories {
jcenter()
}
}
2 添加 module
新建 module 文件夹
添加 module 的 build.gradle
$ mkdir calculator
$ cd calculator
$ touch build.gradle
在 build.gradle 中写入配置信息
成功编译所需要的最小版本
// PROJECT_ROOT/build.gradle
apply plugin: 'com.android.application' // 导入预定义的 android task
android {
compileSdkVersion 21
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.sctdroid.calculator" // 包名 }
sourceSets { // **重点** 重新指定目标文件的位置。若不指定,gradle 则使用默认的目录结构进行编译,会出现找不到指定文件的错误
main {
manifest.srcFile '../AndroidManifest.xml'
java.srcDirs = ['../src']
resources.srcDirs = java.srcDirs
aidl.srcDirs = java.srcDirs
renderscript.srcDirs = java.srcDirs
res.srcDirs = ['../res']
assets.srcDirs = ['../assets']
jniLibs.srcDirs = ['../jniLibs']
}
androidTest.setRoot('tests')
}
lintOptions {
abortOnError false
}
}
以计算器为例
// PROJECT_ROOT/calculator/build.gradle
apply plugin: 'com.android.application' // 导入预定义的 android task
android {
compileSdkVersion 21
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.sctdroid.calculator" // 包名
minSdkVersion 14
targetSdkVersion 17
}
signingConfigs { // 添加签名文件
custom {
storeFile file("../app.keystore")
storePassword "storepassword"
keyAlias "app"
keyPassword "keypassword"
}
// 多渠道打包在这里添加,格式和 custom 相同
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
sourceSets { // **重点** 重新指定目标文件的位置。若不指定,gradle 则使用默认的目录结构进行编译,会出现找不到指定文件的错误
main {
manifest.srcFile '../AndroidManifest.xml'
java.srcDirs = ['../src']
resources.srcDirs = java.srcDirs
aidl.srcDirs = java.srcDirs
renderscript.srcDirs = java.srcDirs
res.srcDirs = ['../res']
assets.srcDirs = ['../assets']
jniLibs.srcDirs = ['../jniLibs']
}
androidTest.setRoot('tests')
}
lintOptions {
abortOnError false
}
}
dependencies {
compile files('../libs/libGoogleAnalyticsV2.jar')
}
修改setting.gradle
添加
include ':calculator'
3. 不要忘了 .gitignore
# .gitignore
.gradle
build
/local.properties
可能遇到的问题
lint
* What went wrong:
Execution failed for task ':calculator:lint'.
> Lint found errors in the project; aborting build.
Fix the issues identified by lint, or add the following to your build script to proceed with errors:
...
android {
lintOptions {
abortOnError false
}
}
...