用gradle编译任意结构的Android项目
## 需求
* 继续用`Eclipse`项目的结构,但是使用`gradle`编译,或者说任意的项目结构进行编译。
## 解决方案
1. Android studio的项目结构
1. Android Studio 整个项目是一个project
2. Project中有很多的module
3. module的类型可以有很多种,比如com.android.application是可以运行的应用程序、com.android.library是Android项目的library.
2. Gradle的编译原则
1. 每个project目录下放置两个重要的配置文件
1. settings.gradle. 此文件是配置project中有的module定论的。有多个个module,路径是什么,叫什么名字
2. build.gradle 此文件是配置gradle全局的一些设置,比如maven库的路径、
2. 每个module目录下都有一个build.gradle
1. 此文件会标记比如当前是什么类型(参见1.3)
2. 签名混淆打多渠道包以及
3. 包依赖
4. 其它的gradle task
<!--more-->
3. 配置过程
1. 在project中创建settings.gradle、build.gradle两个文件
1. project中的settings.gradle中添加如下类型,对应为当前目录路径,其中用`:`分隔。下面代码中module0表示当前根目录中有一个module0,module1表示在根目录下aaa文件夹下bbb文件夹下的module1,根目录下ddd文件夹下的module2。
```
include 'module0'
include 'aaa:bbb:module1'
include 'ddd:module2'
```
2. build.gradle中填入如下
```
buildscript {
repositories {
mavenLocal()
maven {
url "http://your own maven url"
}
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:1.2.3'
}
}
allprojects {
repositories {
mavenLocal()
maven {
url "http://your own maven url"
}
jcenter()
}
}
```
2. 在module中添加build.gradle文件,这里可以配置以下内容设置文件夹:
```
sourceSets {
main {
java.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
jni.srcDirs = ['jni']
jniLibs.srcDirs = ['libs']
manifest.srcFile 'AndroidManifest.xml'
}
}
```
4. 其它
1. AndroidManifest.xml的合并
2. 资源文件的合并
3. lint的检查
4. mutilDex
5. uploadTask
6. 依赖文件的添加
5. 未完待续
## Q&A
```
finished with non-zero exit value 3
```
```
compile fileTree(dir: 'libs', include: ['*.jar'])
换成
provided fileTree(dir: 'libs', include: ['*.jar'])
用gradle编译任意结构的Android项目的更多相关文章
- Ant自己主动编译打包&公布 android项目
Eclipse用起来尽管方便,可是编译打包android项目还是比較慢,尤其将应用打包公布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我们自己主动编译打包了 ...
- 使用NDK编译含JNI的Android项目常见问题解决方案
有时候,自己下载的或者拷贝过来的JNI项目出现莫名错误,通常是找不到头文件,可能解决方案如下: Removing the C nature: The only way I could find to ...
- Ant 命令行编译Android项目
首先把android sdk下的tools目录加到系统path环境变量里, 要么就得直接指定android.bat的绝对路径 对于一个新项目, 可以用这个命令创建需要的ant编译环境(可以看到andr ...
- Ant自动编译打包&发布 android项目
Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其将应用打包发布到各个渠道时,用Eclipse手动打包各种渠道包就有点不切实际了,这时候我们用到Ant帮我们自动编译打包了. ...
- Android-Ant自动编译打包android项目 -- 2 ----签名与渠道包
上篇介绍了怎么使用ant自动编译打包现有的android项目,这篇将继续介绍如果如何在ant打包应用的时候加入签名信息以及自动打包渠道包. 1. 加入签名信息: 在项目的根目录下建一个ant.prop ...
- Andorid进阶7—— Ant自动编译打包&发布 android项目
http://www.cnblogs.com/tt_mc/p/3891546.html Eclipse用起来虽然方便,但是编译打包android项目还是比较慢,尤其将应用打包发布到各个渠道时,用Ecl ...
- Ant自动编译打包android项目(转载)
1.1 Ant安装 ant的安装比较简单,下载ant压缩包 http://ant.apache.org (最新的为1.9.3版本),下载之后将其解压到某个目录(本人解压到E:\Progra ...
- (转载)Ant自动编译打包android项目
1 Ant自动编译打包android项目 1.1 Ant安装 ant的安装比较简单,下载ant压缩包 http://ant.apache.org (最新的为1.9.3版本),下载之后将其解压 ...
- 从0系统学Android--1.3创建你的第一个 Android 项目
1.3 创建你的第一个 Android 项目 环境搭建完成后,我们就可以写下我们的第一个项目了. 1.3.1 创建 HelloWorld 项目 在 Android Studio 的欢迎页面点击 Sta ...
随机推荐
- 【luogu P4137 Rmq Problem / mex】 题解
题目链接:https://www.luogu.org/problemnew/show/P4137 求区间内最大没出现过的自然数 在add时要先判断会不会对当前答案产生影响,如果有就去找下一个答案. # ...
- Android学习笔记_9_SQLiteOpenHelper对象之数据库增删改查以及事务回滚操作
一.SQLite数据库: 在Android平台上,集成了一个嵌入式关系型数据库—SQLite,SQLite3支持 NULL.INTEGER.REAL(浮点数字).TEXT(字符串文本)和BLOB(二进 ...
- Python学习之路——文件操作
文件操作分三步:打开文件,读写文件,关闭文件.读取操作时没有给read函数加括号,会出现下面这样的车祸 >>> data = open('/home/supersun/Documen ...
- 菜鸟崛起 DB Chapter 3 MySQL 5.6的基本操作
3 MySQL的基本操作 上面我们学习一如何安装数据库,那么这节我们来认识一下数据库: 我们在MySQL安装后,在data目录下会自动生成几个必须的数据库,可以使用SHOW DATABASES语句 ...
- rm -f + 文件名+* 与 rm -f + 文件名* 的不同效果,大坑呀。
rm -f catalina.2018-10-22.* 与*号间无空格 rm -f catalina.2018-10-22. * :多了空格:
- Vue--- Vue(Pubsub + Ajax) 数据交互
案例知识点 兄弟组件儿的通信 使用了Pubsub 订阅与发布 ajax数据请求 获取前 获取中 获取后 获取为空 获取异常 获取成功后显示数据给到 原先定义号的 ...
- 自定义组件v-model的实质性理解
用了几个月Vue一直很纠结自定义组件的v-model实现,最近开始学习React时,React中受控组件与状态提升的理念与v-model不谋而合. 转载请注明地址: https://www.cnblo ...
- 20181009noip HZ EZ 两校联考trade(优先队列,贪心)
题面戳这里 思路: 裸的,贪心... 考场上写了一个数据分治(70ptsDP,30pts线段树优化贪心,GG了后30分) 这道题其实很简单的 我们看图: 我们在A时刻买一个东西,在B时刻卖出去,我们可 ...
- oracle的事务隔离级别和读一致性
oracle提供了三个隔离级别: 1.读提交 ,简而言之只能读取语句开始执行前提交的数据 2.串行,这个好理解,就是事务串行运行,避免经典的三个场景-脏读.不可重复读.幻读. 3.只读,oracle已 ...
- 【vlan-trunk和802.1q子接口配置】
根据项目需求,搭建好拓扑图如下: 配置sw1的g1/0/3的/trunk,把g1/0/1和g1/0/2分别加入vlan 10 和 vlan 20 配置sw1的g1/0/3的/trunk,把g1/0/1 ...