手动将eclipse工程转换成android studio工程 - 了解新建一个gradle项目时Gradle帮你做了哪些工作

608 阅读1分钟

eclipse => android studio

@[android][gradle]

思路

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
    }

    }
    ...

```