Android Studio :Android Studio 与 Gradle 深入【二】
转载:http://www.apkbus.com/forum.php?mod=viewthread&tid=255063&extra=page%3D2%26filter%3Dauthor%26orderby%3Ddateline&_dsign=55ac1be3
Android Studio 相关功能介绍文件夹组织视图
Project 视图与 Android 视图Gradle 相关文件结构
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
. ├── gradle │ └── wrapper //所使用的 Gradle 包装器配置 ├── .gradle //所使用 Gradle 版本 │ └── 2.8 ├── AsInDepth.iml ├── app //app module │ ├── app.iml │ ├── build │ ├── build.gradle //app module 的 build.gradle │ ├── libs │ ├── proguard-rules.pro │ └── src ├── build.gradle //项目 build.gradle,通常配置项目全局配置,如 repositories 和 dependencies ├── gradle.properties //项目属性文件,通常可以放置一些常量 ├── gradlew //Gradle 包装器可执行文件 ├── gradlew.bat //Gradle 包装器可执行文件(Windows) ├── lib //lib module │ ├── build │ ├── build.gradle //lib module 的 build.gradle │ ├── lib.iml │ ├── libs │ ├── proguard-rules.pro │ └── src ├── local.properties //项目的本地属性,通常是 sdk 所在位置 └── settings.gradle //项目总体设置,通常是配置项目中所有的 module |
Invalidate Cache
Multiple Language Editor
Gradle 相关功能介绍Gradle View
gradle view命令行
| 1 | ./gradlew build |
Windows 下应该是 gradlew.bat build,下面均以 Mac 为例,不再赘述
| 1 | ./gradlew --help |
- 查看运行 log
| 1 | ./gradlew build --info |
- 指定 module 或者 build.gradle
| 1 | ./gradlew -p app build |
Sync
- 再修改一下文件,便会再次出现 sync 按钮
- 点击上方工作区的按钮
sync button top- 点击 Gradle View 中的同步按钮
sync button top- 命令行执行一次 build
Build Variant
Build Type
Product Flavor
Build Variant = Build Type x Product Flavor
| 1 2 3 4 |
payDebug payRelease freeDebug freeRelease |
配置实例
build variant把 DiffBean 从 main 中抽出来,分别放在两个文件夹中,只关注对应的逻辑即可。
Gradle 使用的仓库
| 1 2 3 4 5 6 7 8 9 |
allprojects { repositories { jcenter() mavenCentral() maven { url 'file:///Users/myusername/repo/' } } } |
使用 jni 预编译 .so 库
- 默认情况下,可以放在与 java 平级的 jniLibs 文件夹中
1
2
3
4
5
6
7
8
9
10
11.
├── AndroidManifest.xml
├── java
│ └── io
│ └── kvh
├── jniLibs
│ ├── armeabi
│ │ └── libweibosdkcore.so
│ └── armeabi-v7a
│ └── libweibosdkcore.so
└── res - 很多人喜欢放在与 src 平级的 libs 文件夹中
1
2
3
4
5
6
7
8├── build.gradle
├── libs
│ ├── armeabi
│ │ └── libweibosdkcore.so
│ └── armeabi-v7a
│ └── libweibosdkcore.so
├── proguard-rules.pro
└── src这样需要在 build.gradle 文件添加如下说明:1
2
3
4
5
6android {
sourceSets {
main {
jniLibs.srcDirs = ['libs']
}
}
升级 gradle 插件
- 在 bintray 上查找最新的版本
- 修改项目的 build.gradle 中插件的版本
1
2
3
4
5
6
7
8buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:2.0.0-alpha5'//这里
}
} - 如果有提示错误,则可能需要 gradle 的运行环境版本,修改项目根目录下文件 gradle/wrapper/gradle-wrapper.properties 中的 distributionUrl为最新,例如
1 distributionUrl=https\://services.gradle.org/distributions/gradle-2.10-all.zip
遇到的坑
下载依赖库失败,报 peer not found
可以尝试将 jcenter 改成默认使用 http 连接:
| 1 2 3 |
jcenter { url "http://jcenter.bintray.com/" } |
下载不到特定的版本
可以尝试删除里面的文件。例如将 Gradle 的 cache 文件删除:
| 1 | rm -rf ~/.gradle/caches/ |
注意这个操作可能会导致所有的远程库都需要重新下载,要三思后行。
库重复冲突
| 1 2 |
UNEXPECTED TOP-LEVEL EXCEPTION multiple dex files define Landroid/support/annotation/AniRes |
| 1 2 3 |
compile ('com.bugtags.library:bugtags-lib:latest.integration') { exclude group: 'com.android.support', module: 'support-v4' } |
后续引言
Android Studio :Android Studio 与 Gradle 深入【二】的更多相关文章
- Android Studio系列教程四--Gradle基础
Android Studio系列教程四--Gradle基础 2014 年 12 月 18 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://stormzhang ...
- Android高效开发环境(Genymotion,Gradle,Andriod Studio)
临近十一,项目接近上线,终于有些碎片时间可以查看一些博客. 这篇博客是Android开发大牛Cyril Mottier在去年写的博客,我把它翻译一下共享给国内志同道合的朋友,同时也是对自己一个很好的锻 ...
- Android开发之深入理解Android Studio构建文件build.gradle配置
摘要: 每周一次,深入学习Android教程,TeachCourse今天带来的一篇关于Android Studio构建文件build.gradle的相关配置,重点学习几个方面的内容:1.applica ...
- [转]Android Studio系列教程六--Gradle多渠道打包
转自:http://www.stormzhang.com/devtools/2015/01/15/android-studio-tutorial6/ Android Studio系列教程六--Grad ...
- Android Studio系列教程六--Gradle多渠道打包
Android Studio系列教程六--Gradle多渠道打包 2015 年 01 月 15 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://stormzh ...
- Android Studio系列教程五--Gradle命令详解与导入第三方包
Android Studio系列教程五--Gradle命令详解与导入第三方包 2015 年 01 月 05 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://s ...
- 错误异常 (1)Android Studio错误提示:Gradle project sync failed. Basic functionality (eg. editing, debugging) will not work properly
[已解决]Android Studio错误提示:Gradle project sync failed. Basic functionality (eg. editing, debugging) wil ...
- 为Android Studio 项目手动下载gradle
在http://developer.android.com/samples/index.html上下载的例子,导入Android Studio的时候,第一件事就是下载项目对应版本的gradle.gra ...
- android studio 一直卡在Gradle:Build Running的解决办法
转:android studio 一直卡在Gradle:Build Running的解决办法 在使用AS开发安卓应用程序的时候经常会遇到Gradle build running一直在运行甚至卡死的 ...
- android studio中如何替换gradle以防下载卡住
我们在开发过程中需要导入别人的demo工程,那么你有事就会下载gradle构建文件,然而有时下载会一直卡住,那么这时候你就会想,我自己用迅雷去下载gradle文件然后不就行了,然后问题就来了 1.我们 ...
随机推荐
- ie6-ie8中不支持opacity透明度的解决方法
ie6-ie8中是不支持的,需要加上下面这句话:filter: alpha(opacity=70);此外这种效果不能用ietester中的ie6测试,因为ietester的ie6这样写也是不透明的,但 ...
- SQL Server存储过程中使用表值作为输入参数示例
这篇文章主要介绍了SQL Server存储过程中使用表值作为输入参数示例,使用表值参数,可以不必创建临时表或许多参数,即可向 Transact-SQL 语句或例程(如存储过程或函数)发送多行数据,这样 ...
- python数字图像处理(18):高级形态学处理
形态学处理,除了最基本的膨胀.腐蚀.开/闭运算.黑/白帽处理外,还有一些更高级的运用,如凸包,连通区域标记,删除小块区域等. 1.凸包 凸包是指一个凸多边形,这个凸多边形将图片中所有的白色像素点都包含 ...
- 用linqPad帮助你快速学习LINQ
在这里我向大家推荐的一个具是LinqPad有了这个工具并熟练使用就可以很快学习并掌握linq linqPad下载地址:http://www.linqpad.net/ 它也自带了很多例子方便大家查询,l ...
- PRML读书会第十三章 Sequential Data(Hidden Markov Models,HMM)
主讲人 张巍 (新浪微博: @张巍_ISCAS) 软件所-张巍<zh3f@qq.com> 19:01:27 我们开始吧,十三章是关于序列数据,现实中很多数据是有前后关系的,例如语音或者DN ...
- Markdown会干掉Html吗?
Markdown会干掉Html吗? 很明显,MarkDown正在已一种比病毒还快的速度传播着,量子的机器人语言也是深受其启发,当然了,在这个东西没搞出来之前,MarkDown就能干很多事情,比如在线编 ...
- mutex与semaphore的区别
网摘1:Mutex 的发音是 /mjuteks/ ,其含义为互斥(体),这个词是Mutual Exclude的缩写.Mutex在计算机中是互斥也就是排他持有的一种方式,和信号量-Semaphore有可 ...
- CSS 问题集锦
[1]让DIV中的内容居中 1.文字垂直居中,关键代码:height:100px;line-height:100px(两个值要相等) <div style="margin:0 auto ...
- Spring学习进阶 (三) Spring AOP
一.是什么AOP是Aspect Oriented Programing的简称,最初被译为“面向方面编程”:AOP通过横向抽取机制为无法通过纵向继承体系进行抽象的重复性代码提供了解决方案.比如事务的控制 ...
- dmesg 显示内核消息
显示内核消息 dmesg [options] dmesg 可以用来显示存储在内核环缓冲区中的消息 系统启动时,内核会用硬件和模块初始化的相关消息填充其环缓冲区.内核环缓冲区中的消息常常用于诊断系统问题 ...