如何優雅的把Eclipse專案匯入到Android Studio中
方法一:把整個Eclipse工程當作AS的根Module(同時也是唯一的子Module)
-
原有的Eclipse工程專案檔案結構是這樣的。如果要遷移後的專案相容Eclipse,那隻能刪除gen資料夾。如果遷移後不再有在Eclipse中編輯的需求,可以繼續刪除.classpath,.project檔案。
-
用AS新建一個工程(用於提取配置檔案),複製以下檔案到專案根目錄。注意:build.gralde是新建AS專案的根Module的build.gradle,不是app子Module的build.gradle。
-
把settings.gradle的include ':app' 刪除。
-
把build.gradle在內容最後加上app子Module的build.gradle的所有內容,並在相應位置新增紅色字型部分內容,以使AS能夠識別Eclipse的專案目錄結構。最終的build.gradle內容如下(版本號可以根據AndroidManifest.xml的配置做相應的修改):
// 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:2.0.0-alpha3'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
apply plugin: 'com.android.application'
android {
compileSdkVersion 17
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "ernest.mddemo"
minSdkVersion 17
targetSdkVersion 17
versionCode 1
versionName "1.0"
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
}
instrumentTest.setRoot('tests')
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
5.開啟AS,選擇Open an existing Android Studio project,找到專案的setting.gradle,開啟。
方法二:把整個Eclipse工程當作子Module,但不在根目錄新增任何檔案
-
新建一個資料夾,如ASProjects,作為根Modeule。
-
複製方法一中第2步的那些檔案到ASProjects資料夾。
-
把settings.gradle檔案修改成如下內容
include ':Settings',':provider'
project(':Settings').projectDir = new File('E:/apps/Settings')
project(':provider').projectDir = new File('E:/android/provider')
其中第一行是Eclipse專案名稱,第二行project引數是第一行的名稱,File引數是專案的路徑。
4.修改build.gradle檔案,在最後加上如下內容。其中project (":Settings"){//這裡的內容是app子Module的build.gradle的內容,同樣加入了紅色字型部分以使AS能夠識別Eclipse的專案目錄結構}。如果有多個專案,需要加入project (":第二個專案名稱"){//第二個專案內容}
project (":Settings"){
apply plugin: 'com.android.application'
android {
compileSdkVersion 17
buildToolsVersion "23.0.2"
defaultConfig {
applicationId "com.konka.localserver"
minSdkVersion 17
targetSdkVersion 17
versionCode 1
versionName "1.0"
}
sourceSets {
main {
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
jniLibs.srcDirs = ['libs']
}
instrumentTest.setRoot('tests')
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
}
}
5.
開啟AS,選擇Open an existing Android Studio project,找到專案的setting.gradle,開啟。