最近从 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

  

  添加完以后,同步一下。

Android studio 导入 github 工程的更多相关文章

  1. 【转】Android studio 导入github工程

    http://blog.csdn.net/feixiaku/article/details/45155587/ 从github下载两个开源项目: PagerSlidingTabStrip    |   ...

  2. android studio学习---Android studio 导入github工程

    无论是那种方式,都最好是先把github上的工程项目下载到本地,然后修改文件再import 首先要知道  自己的build.gradle,在project下面的版本号是多少,比如我的: depende ...

  3. Android Studio导入GitHub上的项目常见问题(有例子)

    前言:github对开发者而言无疑是个宝藏,但想利用它可不是件简单的事,用Android studio导入开源项目会遇到各种问题,今天我就以github上的一个图片轮播项目为例,解决导入过程中的常见问 ...

  4. Android Studio导入GitHub上的项目常见问题(以图片轮播开源项目为实例)

    前言:github对开发者而言无疑是个宝藏,但想利用它可不是件简单的事,用Android studio导入开源项目会遇到各种问题,今天我就以github上的一个图片轮播项目为例,解决导入过程中的常见问 ...

  5. Android Studio 导入Eclipse工程

    eclipse:workspace对应多个project:而android studio是project对应多个module:故,在android studio中的工程project实际上是eclip ...

  6. Android Studio导入github下载的工程

    现在从github上面现在的项目大部分都是Android Studio工程,那么问题来了,从github上面down一个工程下来,怎么导入android studio呢? 对刚从eclipse转And ...

  7. android studio学习----Android Studio导入github下载的工程--替换方法

    http://www.cnblogs.com/liuling/p/2015-9-16-01.html 这种方法是可行的,主要是先自己创建一个project ,然后把没有的文件夹都复制过去就OK了,特别 ...

  8. Android Studio导入github下载的project和module

    前言:我们以前eclispe时代, 经常都是跑到github浏览第三方开源资源,然后下载下来,运行一下sample之类的,学习没有接触的第三方安卓库,但是到了Android Studio,在githu ...

  9. Android Studio导入eclipse工程(引用多个其它工程)

    eclipse工程向android studio 迁移过程中需要到编译错误: eclipse工程的结构比较复杂,引用了其它的工程,在迁移的过程中遇到了错误. @ViewInject(R.id.edit ...

随机推荐

  1. AngularJS使用OData请求ASP.NET Web API资源的思路

    本篇整理AngularJS使用OData请求ASP.NET Web API资源的思路. 首先给ASP.NET Web API插上OData的翅膀,通过NuGet安装OData. 然后,给control ...

  2. log4j deadlock

    用了这么久的Log4j这次倒下了,而且官方也还没有给出解决方案. 描述:tomcat 经过一天多时间的访问,出现了hang ,使用 Jstack 查看堆栈后,发现现成 blocked ,主要是 Log ...

  3. Guava ClassToInstanceMap

    概述 ClassToInstanceMap提供了一种是用Class作为Key, 对应实例作为Value的途径.他定义了T getInstance(Class<T>)和T putInstan ...

  4. OSAL工作机制分析

    协议栈代码main()函数分析 ZMain文件->ZMain.c->main()  在这里我们重点了解osal_start_system()函数 int main( void ) { // ...

  5. [leetcode]Regular Expression Matching @ Python

    原题地址:https://oj.leetcode.com/problems/regular-expression-matching/ 题意: Implement regular expression ...

  6. Java系列: 如何在Eclipse中安装Memory Analyzer插件

    一.找到eclipse的插件安装对话框: help->install new software ->work with 二.输入Memory Analyzer的安装路径 具体可以到http ...

  7. 三种简洁的经典高效的DIV+CSS制作的Tab导航简析

    在网页中应用选项卡可以使网页显得更紧凑,结合AJAX技术可以使页面在有限的空间内展现更多的内容.本文主要介绍几种简洁的选项卡效果的实现(不涉及滑动门和AJAX),附有实例,无图片,兼容性较好,方便大家 ...

  8. 一款基于TweenMax跟随鼠标单击移动的div

    今天给大家分享一款基于TweenMax跟随鼠标单击移动的div.在这款实例中你可以单击任意位置,div会移动到你单击的位置.效果图如下: 在线预览   源码下载 实现的代码. html代码: < ...

  9. C#基础知识整理:C#类和结构(1)

    1.结构功能特性? 实现代码?结构用struct关键字定义的,与类类似,但有本质区别.结构实质是一个值类型,它不需要对分配的.结构的特性:(1).结构作为参数传递时,是值传递.(2).结构的构造函数必 ...

  10. 学 Win32 汇编[33] - 探讨 Win32 汇编的模块化编程

    我觉得所谓的模块化有两种: "假模块化" 和 "真模块化". 所谓 "假模块化" 就是通过 include 指令把 *.inc 或 *.as ...