Android studio 导入github工程

分类:【工具】android studio 573人阅读 评论(1) 收藏 举报 android studio android studio githu

目录(?)[+]

从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

[plain] view plain copy print ?
  1. dependencies{
  2. classpath'com.android.tools.build:gradle:0.6.+'
  3. }

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

更改后:

[plain] view plain copy print ?
  1. dependencies{
  2. classpath'com.android.tools.build:gradle:1.0.0'
  3. }


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

[plain] view plain copy print ?
  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

更改后:

[plain] view plain copy print ?
  1. <prename="code"class="plain">distributionUrl=http\://services.gradle.org/distributions/gradle-2.2.1-all.zip
   

第三个文件:

D:\PagerSlidingTabStrip-master\gradle.properties

[plain] view plain copy print ?
  1. ANDROID_BUILD_TARGET_SDK_VERSION=19
  2. ANDROID_BUILD_TOOLS_VERSION=19
  3. ANDROID_BUILD_SDK_VERSION=19

对应改成你的版本

更改后:

[plain] view plain copy print ?
  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

[plain] view plain copy print ?
  1. applyfrom:'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle'

注释掉这句代码:

更改后:

[plain] view plain copy print ?
  1. //applyfrom:'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

[plain] view plain copy print ?
  1. target=android-17
指定你的sdk版本,我的sdk没有这个版本,我没有修改这个文件,结果编译通过可以运行。有没有觉得很不可思议?其实之前已经指定了。

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

[plain] view plain copy print ?
  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

[plain] view plain copy print ?
  1. android{
  2. compileSdkVersionInteger.parseInt(project.ANDROID_BUILD_SDK_VERSION)
  3. buildToolsVersionproject.ANDROID_BUILD_TOOLS_VERSION
  4. defaultConfig{
  5. minSdkVersion8
  6. targetSdkVersionInteger.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
  7. versionNameproject.SAMPLE_VERSION_NAME
  8. versionCodeInteger.parseInt(project.SAMPLE_VERSION_CODE)
  9. }
各自已经引用了,minSdkVersion=8,我们也可以全局去指定,然后引用。

配置:ANDROID_BUILD_MIN_SDK_VERSION=14

引用:

[plain] view plain copy print ?
  1. minSdkVersionproject.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中都有引用。

[plain] view plain copy print ?
  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中的一句代码:

[plain] view plain copy print ?
  1. applyfrom:'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle'

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


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

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

[plain] view plain copy print ?
  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文件?

更多相关文章

  1. NPM 和webpack 的基础使用
  2. 【阿里云镜像】使用阿里巴巴DNS镜像源——DNS配置教程
  3. Android(安卓)getResources的作用和需要注意点
  4. android Select at least one project
  5. Caused by: com.android.tools.r8.CompilationFailedException:
  6. Android学习笔记之mainfest文件中android属性
  7. android中TextView和EditText控件一些属性
  8. 文件浏览器
  9. Android(安卓)button设置height后圆角消失问题

随机推荐

  1. MySQL 慢查询日志深入理解
  2. MySQL root密码的重置方法
  3. MySQL性能压力基准测试工具sysbench的使
  4. Mysql MVCC机制原理详解
  5. 详解MySQL 用户权限管理
  6. mysql死锁和分库分表问题详解
  7. MySQL命令行操作时的编码问题详解
  8. Idea连接MySQL数据库出现中文乱码的问题
  9. mysql的MVCC多版本并发控制的实现
  10. mysql查询的控制语句图文详解