简介
很多老的项目是采用eclipse开发的,其中的文件结构和AS都不一样,因此不能够直接将其导入到AS中,以下方法是利用build.gradle文件,手动指定对应的文件目录,使得AS可以识别,同样eclipse也可以识别。
转换方法
1.使用AS打开eclipse项目;
如下图所示为eclipse项目
使用AS打开这个项目,此时AS并不能识别这个项目,也无法进行编译。
2.在项目的根目录下新建build.gradle文件;
新建build.gradle文件
编辑build.gradle文件,具体代码如下,
其中最重要的模块是sourceSets领域,需要告诉AS项目各个模块的目录
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0-alpha4'
}
}
apply plugin: 'com.android.application'
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
}
android{
//指定编译环境
compileSdkVersion 25
buildToolsVersion "26.0.0"
defaultConfig {
minSdkVersion 15
targetSdkVersion 25
versionCode 1
versionName "1.0"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
sourceSets {
//指定Android项目的各个模块
main{
manifest.srcFile 'AndroidManifest.xml'
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
}
debug.setRoot('build-types/debug')
release.setRoot('build-types/release')
}
}
3.重启项目
重新打开这个项目,会弹出以下对话框,点击ok
等项目更新完,发现已经可以进行编译运行了。
这个项目同样也可以使用eclipse打开。
总结
eclipse项目和AS项目默认的结构不同,如果不配置sourceSets,那么AS将会采用其默认的方式去读取项目,这样当然无法正确的读取。指定了目录之后,便可以实现eclipse和AS项目互相转换。