用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 ...
随机推荐
- pooling、relu、convolution的反向传播
1.pooling的反向传播: https://blog.csdn.net/qq_21190081/article/details/72871704 pooling反向传播的原则:pooling的值和 ...
- 一篇博客:分类模型的 Loss 为什么使用 cross entropy 而不是 classification error 或 squared error
https://zhuanlan.zhihu.com/p/26268559 分类问题的目标变量是离散的,而回归是连续的数值. 分类问题,都用 onehot + cross entropy traini ...
- SpringMVC学习记录三——8 springmvc和mybatis整合
8 springmvc和mybatis整合 8.1 需求 使用springmvc和mybatis完成商品列表查询. 8.2 整合思路 springmvc+mybaits的 ...
- 互联网高级Java面试总结
前不久刚换了单位,这段时间抽出时间来总结一下. 本人渣本毕业四年,无大厂工作经验,出来面高级Java. 上家单位是一个知名互联网平台,但是体量不大的小公司(5线互联网公司),但就是出名(职场人都知道~ ...
- jQuery编程代码规范的最佳实践
好像是feedly订阅里看到的文章,读完后觉得非常不错,译之备用,多看受益. 加载jQuery 1.坚持使用CDN来加载jQuery,这种别人服务器免费帮你托管文件的便宜干嘛不占呢.点击查看使用C ...
- spring入门(二) 使用注解代替xml配置
1.导包(略) 2.applicationContext.xml如下: <?xml version="1.0" encoding="UTF-8"?> ...
- 更换eclipse字体
eclipse自带的字体非常不好,看的我难受,可能是使用myeclipse习惯了,怎么调节都不好使 最后决定下载一个字体包吧! 字体下载地址如下:http://files.cnblogs.com/ic ...
- 5820. 【NOIP提高A组模拟2018.8.16】 非法输入(模拟,字符串)
5820. [NOIP提高A组模拟2018.8.16] 非法输入 (File IO): input:aplusb.in output:aplusb.out Time Limits: 1000 ms ...
- 第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛--L-用来作弊的药水
链接:https://www.nowcoder.com/acm/contest/90/L 来源:牛客网 1.题目描述 -- 在一个风雨交加的夜晚,来自异世界的不愿透露姓名的TMK同学获得了两种超强药水 ...
- BZOJ2659: [Beijing wc2012]算不出的算式(数学)
Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 1575 Solved: 939[Submit][Status][Discuss] Descriptio ...