从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文件?

下篇文章继续。

gradle android的更多相关文章

  1. Gradle Android客户端程序打包(基于gradle 2.10版本验证通过)

    一.前言 目前正在准备从eclipse开发环境向AndroidStudio迁移,提前过去探探路,不出所料,原来gradle脚本果然报错,无法运行,想想索性把本地的gradle一起升级到最新版本,毕竟1 ...

  2. Gradle Android客户端程序打包(基于gradle 1.12版本验证通过)

    一.前言 android客户端开发进入尾声,负责SEO同事突然发给我一个涉及45个发布渠道的噩耗,之前只发布自有渠道的工作方式(手动修改参数打包)已经不满足需求,所以引入最近比较流行的gradle打包 ...

  3. android--jenkins+gradle+android自动化构建apk步骤(转)

    第一步,安装jenkins,这个网上教程挺多的. 第二步,下载并配置gradle.下载地址http://www.gradle.org/ 解压gradle至某路径下,如/usr/local/lib/gr ...

  4. Android Studio安装后配置默认新工程目录以及.gradle,.android,.m2和system,config目录

    关于在哪里设置:以下所有设置都是在没有打开工程的前提下设置的, Configure > Settings 如图: 不要使用 Configure > Project Defaults> ...

  5. Gradle Android最新自动化编译脚本教程

    转自:http://blog.csdn.net/changemyself/article/details/39927381 一.前言 Gradle 是以 Groovy 语言为基础,面向Java应用为主 ...

  6. jenkins git gradle android自动化构建配置

    需要安装软件(jenkins所在服务器): gradle.SDK 一.gradle安装(服务器部署的gradle版本需要等于或高于开发环境的gradle版本) 1.下载地址:http://servic ...

  7. Gradle Android它自己的编译脚本教程的最新举措(提供demo源代码)

    一.前言 Gradle 是以 Groovy 语言为基础,面向Java应用为主.基于DSL(领域特定语言)语法的自己主动化构建工具. 上面这句话我认为写得非常官方,大家仅仅需知道Gradle能够用来an ...

  8. Gradle—Android配置详解

    参考[1]彻底弄明白Gradle相关配置       [2]Android Studio gradle配置详解

  9. Gradle Android Studio basic

    1. change gradle version in gradle/wrapper/gradle-wrapper.properties  change distributionUrl=http\:/ ...

随机推荐

  1. node-webkit 应用打包发布

    方便进行打包,使用了nodejs  ,gulp  nw-builder 备注  windows 操作系统部分版本需要包含  msvcr100.dll  建议制作安装程序的时候直接包含 为了进行视频以及 ...

  2. 阿里云centos增加swap(虚拟内存)

    我的阿里云服务器默认是没有配swap交换文件. 创建swap根目录 mkdir /swap 创建swap dd if=/dev/zero of=/swap/swap bs=1024 count=102 ...

  3. serialVersionUID 的用途--转加自己的疑问

    serialVersionUID适用于Java的序列化机制.简单来说,Java的序列化机制是通过判断类的serialVersionUID来验证版本一致性的.在进行反序列化时,JVM会把传来的字节流中的 ...

  4. RMAN备份与恢复之删除过期备份

    使用crosscheck backupset或crosscheck backup之后,提示所有备份集都为available状态,当他执行delete obsolete时,提示有两个文件需要删除.实际上 ...

  5. Hub, bridge, switch, router, gateway的区别

    这些概念性的东西,其实,有的区别不是很大,有的区别很大. Hub 就是一个重复转发器,就是从一个port接受到数据后,就会原样的向其他的所有端口发送刚才收到的数据.个人理解为是工作在物理层的东西.但是 ...

  6. 关于JAVA中事件分发和监听机制实现的代码实例-绝对原创实用

    http://blog.csdn.net/5iasp/article/details/37054171 文章标题:关于JAVA中事件分发和监听机制实现的代码实例 文章地址: http://blog.c ...

  7. IntelliJ IDEA中怎么查看方法说明?

    View→Quick Documentation 查看当前配置的快捷键(例如Ctrl + Q) 在光标所在的方法上按下快捷键就可以看到方法的说明 下图为在View菜单中查看当前配置的快捷键截图: 下图 ...

  8. string和stringBuilder区别

    C# String 对象是不可改变的.每次使用 System.String 类中的方法之一时,都要在内存中创建一个新的字符串对象,这就需要为该新对象分配新的空间.在需要对字符串执行重复修改的情况下,与 ...

  9. SecureCRT上传、下载文件 使用sz与rz命令

    首先安装:apt-get install lrzsz SecureCRT这款SSH客户端软件同时具备了终端仿真器和文件传输功能.比ftp命令方便多了,而且服务器不用再开FTP服务了.rz,sz是便是L ...

  10. 访问修饰符protected

    protected(C# 参考) protected 关键字是一个成员访问修饰符. 受保护成员在其所在的类中可由派生类实例访问. 示例只有在通过派生类访问时,基类的受保护成员在派生类中才是可访问的. ...