最近从 github 下载两个开源项目,导入 Android Studio 都以 Studio 卡死结束。第一次以为是项目问题,第二次查询资料发现导入方式不正确,在此整理。
原目录结构如下:
Android Studio 中的 Project 等同于 eclipse 中的 workspace , Module 等同于 eclipse 中的 project。
一、整项目导入
下载完项目先不要急着导入,按下文操作修改一些 gradle 相关文件后再导入,特别是下文说的第二个需要修改的文件,如果本地没有这个配置的包,导入时会花很长时间去下这个包,但是一般我们在安装studio的时候就已经有了。
首先,用文本编辑器,修改配置文件 build.gradle 的 dependencies 部分。
dependencies { classpath 'com.android.tools.build:gradle:1.5.0' }
1.5.0,改成你所安装的 Android Studio 使用的版本。若不知道该改成啥,最简单的方式是新建一个project,找到这个文件看这个值是是用的哪个版本。
更改后:
dependencies { classpath 'com.android.tools.build:gradle:2.3.3' }
其次,修改 gradle/wrapper/gradle-wrapper.properties 的 distributionUrl 的值 gradle-x.x-all.zip 版本。同样可以参照新建 project。也可直接用新建项目下 gradle/wrapper/ 目录下的两个文件替换。
更改后:
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
再次,修改 gradle.properties 文件配置,同样可以参照新建 project。如果项目这个文件没有配置,则不用管。
第四,如果存在 Modul 还需要如下修改:
A 修改 Module 目录下 build.gradle ,若文件中存在 apply from: 部分,则将该部分注释。(如果没有,则不用管。)
更改后:
//apply from: 'https://raw.githubusercontent.com/blundell/release-android-library/master/android-release-aar.gradle'
B 其他文件 Module 目录下的 project.properties 文件中的 target=android-17 ,指定 SDK 版本
有时本地 sdk 没有这个版本,且没有修改这个文件,结果编译通过可以运行。其实在之前可以指定,即在文件 gradle.properties 中指定,如下:
ANDROID_BUILD_TARGET_SDK_VERSION=21 ANDROID_BUILD_TOOLS_VERSION=21.1.2 ANDROID_BUILD_SDK_VERSION=21
以上文件改完后就可以直接导入整个工程,选择工程根目录。
如果有错点击工具栏中的同步,如下图:
注意:
我在实践时,直接用新建项目下 gradle/wrapper/ 目录下的两个文件替换下载下来的开源项目同位置的文件,不用做其余修改,即可导入成功。
二、Module 导入
如果已经有Project,只想导入 lib-zxing 和 app 这两个项目到 Model (即Project)。
首先,File > New > Import Module
其次,在项目中引用添加的 Module (以 lib-zxing 为例)
Project Structure → app(要添加引用的 Project) → Dependencies → 3 Module dependency
添加完以后,同步一下。