最近从 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. Image控件Stretch属性

    通过设置Image控件Stretch属性的值可以控制图片的显示形式: 包含的值:None.Fill.Uniform.UniformToFill <Grid x:Name="Layout ...

  2. JavaScript 检查是否是数字

    //---------------------------------------------------------- // 功能:检查是否是数字 // 参数: // str // 返回值: // ...

  3. 第三方包jintellitype实现Java设置全局热键

    Java原生API并不支持为应用程序设置全局热键.要实现全局热键,需要用JNI方式实现,这就涉及到编写C/C++代码,这对于大多数不熟悉C /C++的javaer来说,有点困难.不过幸好,国外有人已经 ...

  4. mybatis大于号,小于号,去地址符,单引号,双引号转义说明

    在mybatis中,使用到大于号,小于号,与在SQL编辑器中是不一样的. SELECT * FROM test WHERE 1 = 1 AND start_date <= CURRENT_DAT ...

  5. C#零基础入门07:打老鼠之面向对象重构

    一:前言 有了上面两节的知识,尤其是第六节之后,现在我们回过头看我们的打老鼠游戏,我们是不是会发现:这个程序也太不面向对象了.我们所有的代码逻辑都分布在Code-Hide中(UI的后台代码,称之为Co ...

  6. 直方图与bin

    1.bin的含义 直方图中bin的含义:计算颜色直方图需要将颜色空间划分为若干小的颜色区间,即直方图的bin,通过计算颜色在每个小区间内德像素得到颜色直方图,bin越多,直方图对颜色的分辨率越强,但增 ...

  7. ptime概述

    官方给出的ptime的定义是:ptime gives the length of time in milliseconds represented by themedia in a packet.简单 ...

  8. GraphX中Pregel单源点最短路径(转)

    原文链接:GraphX中Pregel单源点最短路径 GraphX中的单源点最短路径例子,使用的是类Pregel的方式. 核心部分是三个函数: 1.节点处理消息的函数  vprog: (VertexId ...

  9. JavaScript:Functions

    ylbtech-JavaScript:Functions 1.返回顶部 JavaScript 全局对象 全局属性和函数可用于所有内建的 JavaScript 对象. 顶层函数(全局函数) 函数 描述 ...

  10. C++ 友元类使用 (friend)

    C++中私有变量对外部类是不能直接访问的,也是不能继承的. 使用友元类可以访问类中的私有方法.私有变量,虽然对类的封装有一定的破坏,但是有时也是很实用的. 在实际中,在修改已有代码时,为了不大改动已有 ...