gradle android
从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
- dependencies {
- classpath 'com.android.tools.build:gradle:0.6.+'
- }
0.6+,改成你的版本。如果你不知道该改成啥,最简单的方式是你新建一个project,找到这个文件看这个值是多少。
更改后:
- dependencies {
- classpath 'com.android.tools.build:gradle:1.0.0'
- }
第二个文件:D:\PagerSlidingTabStrip-master\gradle\wrapper\gradle-wrapper.properties
- 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
更改后:
- <pre name="code" class="plain">distributionUrl=http\://services.gradle.org/distributions/gradle-2.2.1-all.zip
第三个文件:
D:\PagerSlidingTabStrip-master\gradle.properties
- ANDROID_BUILD_TARGET_SDK_VERSION=19
- ANDROID_BUILD_TOOLS_VERSION=19
- ANDROID_BUILD_SDK_VERSION=19
对应改成你的版本
更改后:
- ANDROID_BUILD_TARGET_SDK_VERSION=21
- ANDROID_BUILD_TOOLS_VERSION=21.1.2
- ANDROID_BUILD_SDK_VERSION=21
(如果你的项目这个文件没有上面配置,则不用管。)
第四个文件:
D:\PagerSlidingTabStrip-master\library\build.gradle
- apply from: 'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle'
注释掉这句代码:
更改后:
- //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
- target=android-17
指定你的sdk版本,我的sdk没有这个版本,我没有修改这个文件,结果编译通过可以运行。有没有觉得很不可思议?其实之前已经指定了。
看文件 D:\PagerSlidingTabStrip-master\gradle.properties
- ANDROID_BUILD_TARGET_SDK_VERSION=21
- ANDROID_BUILD_TOOLS_VERSION=21.1.2
- ANDROID_BUILD_SDK_VERSION=21
Yes,就是这里了。
看文件 D:\PagerSlidingTabStrip-master\sample\build.gradle和D:\PagerSlidingTabStrip-master\library\build.gradle
- android {
- compileSdkVersion Integer.parseInt(project.ANDROID_BUILD_SDK_VERSION)
- buildToolsVersion project.ANDROID_BUILD_TOOLS_VERSION
- defaultConfig {
- minSdkVersion 8
- targetSdkVersion Integer.parseInt(project.ANDROID_BUILD_TARGET_SDK_VERSION)
- versionName project.SAMPLE_VERSION_NAME
- versionCode Integer.parseInt(project.SAMPLE_VERSION_CODE)
- }
各自已经引用了,minSdkVersion=8,我们也可以全局去指定,然后引用。
配置:ANDROID_BUILD_MIN_SDK_VERSION=14
引用:
- 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中都有引用。
- ANDROID_BUILD_MIN_SDK_VERSION=14
- ANDROID_BUILD_TARGET_SDK_VERSION=21
- ANDROID_BUILD_TOOLS_VERSION=21.1.2
- ANDROID_BUILD_SDK_VERSION=21
然后不要忘了注释掉
libray中build.gradle中的一句代码:
- apply from: 'https://raw.github.com/chrisbanes/gradle-mvn-push/master/gradle-mvn-push.gradle'
然后同步gradle文件,点击这个按钮
结果还是报错,其实和上面一样。
知道是什么原因了,就不要一个个改了,直接去PagerSlidingTabStrip-master\gradle.properties源文件中把这些配置copy过来一次搞定。
- VERSION_NAME=1.0.1
- GROUP=com.astuetz
- SAMPLE_VERSION_NAME=1.0.2
- 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的更多相关文章
- Gradle Android客户端程序打包(基于gradle 2.10版本验证通过)
一.前言 目前正在准备从eclipse开发环境向AndroidStudio迁移,提前过去探探路,不出所料,原来gradle脚本果然报错,无法运行,想想索性把本地的gradle一起升级到最新版本,毕竟1 ...
- Gradle Android客户端程序打包(基于gradle 1.12版本验证通过)
一.前言 android客户端开发进入尾声,负责SEO同事突然发给我一个涉及45个发布渠道的噩耗,之前只发布自有渠道的工作方式(手动修改参数打包)已经不满足需求,所以引入最近比较流行的gradle打包 ...
- android--jenkins+gradle+android自动化构建apk步骤(转)
第一步,安装jenkins,这个网上教程挺多的. 第二步,下载并配置gradle.下载地址http://www.gradle.org/ 解压gradle至某路径下,如/usr/local/lib/gr ...
- Android Studio安装后配置默认新工程目录以及.gradle,.android,.m2和system,config目录
关于在哪里设置:以下所有设置都是在没有打开工程的前提下设置的, Configure > Settings 如图: 不要使用 Configure > Project Defaults> ...
- Gradle Android最新自动化编译脚本教程
转自:http://blog.csdn.net/changemyself/article/details/39927381 一.前言 Gradle 是以 Groovy 语言为基础,面向Java应用为主 ...
- jenkins git gradle android自动化构建配置
需要安装软件(jenkins所在服务器): gradle.SDK 一.gradle安装(服务器部署的gradle版本需要等于或高于开发环境的gradle版本) 1.下载地址:http://servic ...
- Gradle Android它自己的编译脚本教程的最新举措(提供demo源代码)
一.前言 Gradle 是以 Groovy 语言为基础,面向Java应用为主.基于DSL(领域特定语言)语法的自己主动化构建工具. 上面这句话我认为写得非常官方,大家仅仅需知道Gradle能够用来an ...
- Gradle—Android配置详解
参考[1]彻底弄明白Gradle相关配置 [2]Android Studio gradle配置详解
- Gradle Android Studio basic
1. change gradle version in gradle/wrapper/gradle-wrapper.properties change distributionUrl=http\:/ ...
随机推荐
- unity shader在小米2s上的问题
一个很简单的用mask裁剪图片的效果: mask: 被裁剪图片: 正确的效果: 在小米2s上测,其中有一台小米2s出现花屏: 手机型号: shader如下: Shader "UI/Trans ...
- RSA openssl_public_encrypt false
这个问题困扰了我好久,最后发现,原来这个函数只能最大长度为117个字节.如果加密的串超过这个长度,就会返回false.
- python之chardet库
chardet库是python的字符编码检测器,能够检测出各种编码的类型,例如: import chardet import urllib.request testdata = urllib.requ ...
- html颜色字体字符代码
HTML字体代码表 宋体 SimSun 宋体:SimSuncss中中文字体(font-family)的英文名称 黑体 SimHei Mac OS的一些: 微软雅黑 Microsoft YaHe ...
- Apache 性能优化
有一个升级服务器,这几天一直访问的比较慢.导致部分用户升级不了.看了一下服务器的负载,发现 CPU和内存占用的都不是很高,可能是Apache配置不当造成的,一番搜索,找到了MPM的配置,提速很明显哦 ...
- C#的浅拷贝和深拷贝
C#中有两种类型变量,一种 是值类型变量,一种是引用类型变量 对于值类型变量,深拷贝和前拷贝都是通过赋值操作符号(=)实现,其效果一致,将对象中的值类型的字段拷贝到新的对象中.这个很容易理解. 本文重 ...
- XAMPP 在windows下无法启动Apache解决方案
XAMPP 在windows下无法启动Apache解决方案 一.现象 XAMPP 点击Start Apache时出现如下错误 20:41:12 [Apache] Error: Apache shut ...
- VMware 虚拟机Red Hat 5.9 交换区及硬盘空间调整
首先要通过VMware设置简单实现内存扩大.但是系统中的/swap应该如何设置呢? 1. 创建swap 文件 使用如下命令: #dd if=/dev/zero of=/swap/swapfile bs ...
- C++资料大全
本文内容源自GitHub<Awesome C/C++>. 关于 C++ 框架.库和资源的一些汇总列表,由 fffaraz 发起和维护. 内容包括:标准库.Web应用框架.人工智能.数据库. ...
- Visual对象之DrawingContext.DrawRectangle在有的状态下似乎并不能提高性能
很多书上都提到使用Visual对象绘制图形可以提高绘图效率,但是经过本人亲测,结果却发现DrawingContext.DrawRectangle的效率远低于使用UIElement.Children.A ...