http://blog.csdn.net/feixiaku/article/details/45155587/

从github下载两个开源项目:

PagerSlidingTabStrip    |    Android-Universal-Image-Loader-master

https://github.com/astuetz/PagerSlidingTabStrip

https://github.com/nostra13/Android-Universal-Image-Loader

下文说的Project等同于eclipse中的workspace,Module等同于eclipse中的project

先说导入PagerSlidingTabStrip:

文件列表的两个Modul,一个library,一个sample。如果是eclipse的话直接选中这两个modul导入就可以了。

如果使用Android Studio,则可以分两种方式导入。看第一张图结构,一些gradle文件说明了这个Project可以整个导入,导入后文件根目录就是工作空间的名词,里面两个modle,sample和library。当然如果我已经有了工作空间,只需要导入sample和library,就是下文说的第二种方式了。然后看第二张图,很明显它不能做为一个Project整个导入,它没有gradle构建项目的配置文件,所以你必须有一个Project,然后通过下文的第二种方式导入。

第一种方式:

先看下导入成功的结构

下载完项目先不要急着导入,按下文操作修改一些gradle相关文件后再导入,特别是下文说的第二个需要修改的文件,如果本地没有这个配置的包,导入时会花很长时间去下这个包,但是一般我们在安装studio的时候就已经有了。

这里从第一步开始导入并解决这些错误。

打开你的文本编辑器,修改配置文件。

第一个文件:PagerSlidingTabStrip-master\build.gradle

  1. dependencies {
  2. classpath 'com.android.tools.build:gradle:0.6.+'
  3. }

0.6+,改成你的版本。如果你不知道该改成啥,最简单的方式是你新建一个project,找到这个文件看这个值是多少。

更改后:

  1. dependencies {
  2. classpath 'com.android.tools.build:gradle:1.0.0'
  3. }

第二个文件:D:\PagerSlidingTabStrip-master\gradle\wrapper\gradle-wrapper.properties

  1. distributionUrl=http\://services.gradle.org/distributions/gradle-1.8-all.zip

gradle-1.8.all.zip,改成你的版本。如上,如果不知道你可以新建一个project,去找。

我的android studio版本是1.0.1,gradle文件路径在android studio的安装目录下

D:\Program Files\Android\Android Studio\gradle\gradle-2.2.1

更改后:

  1. <pre name="code" class="plain">distributionUrl=http\://services.gradle.org/distributions/gradle-2.2.1-all.zip

第三个文件:

D:\PagerSlidingTabStrip-master\gradle.properties

  1. ANDROID_BUILD_TARGET_SDK_VERSION=19
  2. ANDROID_BUILD_TOOLS_VERSION=19
  3. ANDROID_BUILD_SDK_VERSION=19

对应改成你的版本

更改后:

  1. ANDROID_BUILD_TARGET_SDK_VERSION=21
  2. ANDROID_BUILD_TOOLS_VERSION=21.1.2
  3. ANDROID_BUILD_SDK_VERSION=21

(如果你的项目这个文件没有上面配置,则不用管。)

第四个文件:

D:\PagerSlidingTabStrip-master\library\build.gradle

  1. apply from: 'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle'

注释掉这句代码:

更改后:

  1. //apply from: 'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle'

(如果你的项目这个文件没有上面配置,则不用管。)

其他文件:

D:\PagerSlidingTabStrip-master\library\project.properties和D:\PagerSlidingTabStrip-master\sample\project.properties

  1. target=android-17

指定你的sdk版本,我的sdk没有这个版本,我没有修改这个文件,结果编译通过可以运行。有没有觉得很不可思议?其实之前已经指定了。

看文件 D:\PagerSlidingTabStrip-master\gradle.properties

  1. ANDROID_BUILD_TARGET_SDK_VERSION=21
  2. ANDROID_BUILD_TOOLS_VERSION=21.1.2
  3. ANDROID_BUILD_SDK_VERSION=21

Yes,就是这里了。

看文件 D:\PagerSlidingTabStrip-master\sample\build.gradle和D:\PagerSlidingTabStrip-master\library\build.gradle

  1. android {
  2. compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
  3. buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
  4. defaultConfig {
  5. minSdkVersion 8
  6. targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
  7. versionName project.SAMPLE_VERSION_NAME
  8. versionCode Integer.parseInt(project.SAMPLE_VERSION_CODE)
  9. }

各自已经引用了,minSdkVersion=8,我们也可以全局去指定,然后引用。

配置:ANDROID_BUILD_MIN_SDK_VERSION=14

引用:

  1. minSdkVersion project.ANDROID_BUILD_MIN_SDK_VERSION

这四个文件改完后就可以直接导入整个工程了

File-import project-PagerSlidingTabStrip-master(根目录)

成功导入后的结构图上面已经给出。

如果有错点击

第二种方式:

如果已经有Project,只想导入sample和libray这两个项目到Project。

step1:

File > Import Project

step2:

step3:

step4

(PS.我已经导入了,所以这个Finish不可点击)

导入完后的工作目录项目不见了,切换显示方式就有了,点击Project

工程出来了,看message gradle message报错信息

看完第一种方式,这里能明白是怎么回事了。

在gradle.properties配置上sdk的值,因为sample和library中的gradle.properties中都有引用。

  1. ANDROID_BUILD_MIN_SDK_VERSION=14
  2. ANDROID_BUILD_TARGET_SDK_VERSION=21
  3. ANDROID_BUILD_TOOLS_VERSION=21.1.2
  4. ANDROID_BUILD_SDK_VERSION=21

然后不要忘了注释掉

libray中build.gradle中的一句代码:

  1. apply from: 'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle'

然后同步gradle文件,点击这个按钮

结果还是报错,其实和上面一样。

知道是什么原因了,就不要一个个改了,直接去PagerSlidingTabStrip-master\gradle.properties源文件中把这些配置copy过来一次搞定。

  1. VERSION_NAME=1.0.1
  2. GROUP=com.astuetz
  3. SAMPLE_VERSION_NAME=1.0.2
  4. SAMPLE_VERSION_CODE=3

然后同步gradle(PS:这个时候我也不清楚可以编译否)

oh,编译通过,也可以运行,结构如下。

PagerSlidingTabStrip这个github的开源控件的两种导入方式说完。

另外一个Android-Universal-Image-Loader-master

看根目录结构就知道,需要用第二中方式去导入。

看smple和library的目录结构:

sample导入可以正常识别,记得导入之前修改build.gradle文件。

library识别不了。原因在于build.gradle这个文件。

直接copy到library目录下,并修改

apply plugin: 'com.android.application'

改为:

apply plugin: 'android-library' 或者 apply plugin: 'com.android.library'

这样就可以正常导入了。

但是新的问题又来了

如何在sample中引用library这个项目?

先把sample中libs中的universal-image-loader-1.9.4-SNAPSHOT.jar这个包删掉

点击sync gradle message后工程很明显会报错。

开始引入library,如图操作:

点击Mehule dependency后会弹出一个窗口,选中library即可。sync gradle message,工程就不会报错了。

如何将libray打包成jar文件? 如何在项目中导入这个jar文件?

下篇文章继续。

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

  1. Android studio 导入 github 工程

    最近从 github 下载两个开源项目,导入 Android Studio 都以 Studio 卡死结束.第一次以为是项目问题,第二次查询资料发现导入方式不正确,在此整理. 原目录结构如下: Andr ...

  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. FPGA中latency与delay概念的区别

    2013-06-17 21:09:26 最近学习流水线以及状态机,总遇到注入加入寄存器可以分割组合逻辑,从而提高电路的运行频率的说法:还有流水线可以提高速度的说法,刚开始很是疑惑,觉得流水线的方法,输 ...

  2. Android开发之全局获取Context的技巧

    转自<第一行代码-Android>进阶篇 这本书对于入门来说确实很棒,很简单明了的介绍了Android开发中涉及到的方方面面,对我的帮助很大,同时记录一些该书中一些对我以后开发有用的东西, ...

  3. Java面试题-并发工具

    1. 如何实现一个流控程序,用于控制请求的调用次数?

  4. 使用simhash以及海明距离判断内容相似程度

    算法简介 SimHash也即相似hash,是一类特殊的信息指纹,常用来比较文章的相似度,与传统hash相比,传统hash只负责将原始内容尽量随机的映射为一个特征值,并保证相同的内容一定具有相同的特征值 ...

  5. BMap介绍

    API引用路径: <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&am ...

  6. 嵌入式Linux启动过程中的问题积累

    嵌入式Linux启动过程中的问题积累 Dongas 07-12-19 1.Bad Magic Number ## Booting image at 33000000 ... Bad Magic Num ...

  7. ORACLE DATAGURARD 折腾记二

    前文再续,书接上一回,这次折腾Data Guard的一个重要目的是利用switchover实现机器的升级,怎么switchover呢?按照我的理解,Data Guard的角色切换是这样一个过程: (1 ...

  8. 【转】 COCOS2D-X之使用CURL下载图片的一个简单Demo

    #include"curl/curl.h" #pragma  comment(lib,"libcurl_imp.lib") bool HelloWorld::i ...

  9. Ext入门学习系列(五)表格控件(3)

    上节学习了Ext中如何绑定服务器端传递的数据.分别用asp.net和asp.net MVC.PHP.XML为例.本节主要介绍绑定之后的分页功能. 一.Ext的表格控件如何绑定? 分页是Ext自带的一个 ...

  10. Linux中的设备文件与设备号

    设备文件与设备号   在Linux下,一切皆文件,设备也不例外,为了管理这些设备,系统为它们各自都编了号,而每个设备号又分为主设备号和次设备号.主设备号用来区分不同类型的设备,而次设备号用来区分同一类 ...