手動將eclipse工程轉換成android studio工程 - 瞭解新建一個gradle項目時Gradle幫你作了哪些工做

eclipse => android studio

思路

1 在項目根目錄添加 gradle
2 新建 module 代替原來的project,從新指定目錄結構使其指向根目錄下的資源路徑java

1 初始化gradle目錄

  • 初始化gradleandroid

$ cd PROJECT_ROOT
$ gradle init
$ git st
?? .gradle/
?? build.gradle
?? gradle/
?? gradlew
?? gradlew.bat
?? settings.gradle
  • 配置sdk信息git

新建文件 local.properties
文件只有一行,指定sdk路徑 sdk.dir=...app

$ cat > local.properties
sdk.dir=/home/sctdroid/android_sdk/  
^C
$ cat local.properties 
sdk.dir=/home/sctdroid/android_sdk/
  • 配置build.gradleeclipse

// 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 文件夾ide

  • 添加 module 的 build.gradlegradle

$ mkdir calculator
$ cd calculator
$ touch build.gradle
  • 在 build.gradle 中寫入配置信息
    成功編譯所須要的最小版本ui

// 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
    }

}

以計算器爲例spa

// 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.gradlecode

添加
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
      }
  }
  ...
相關文章
相關標籤/搜索