Small组件化系列
宿主集成:
==编辑该文时暂时不支持gradle 3.0.0版本,会出现找不到libraries的错误,使用android studio3.0的同学请将gradle版本设置为2.3.3或以下==
- 在 buildscript > dependencies 下添加Small编译插件 gradle-small:
classpath 'net.wequick.tools.build:gradle-small:1.3.0-beta3'
- 在文件末尾引用 gradle-small 插件:
apply plugin: 'net.wequick.small'
- 设置Small运行库版本:
small {
aarVersion = '1.3.0-beta3'
}
当 gradle-small 在 1.1.0-alpha2 以上版本时可以不指定 aarVersion,默认为 gradle-small 版本。
- 验证:
.\gradlew small
输出:
### Compile-time
gradle-small plugin : 1.3.0-beta3 (maven)
small aar : 1.3.0-beta3 (maven)
gradle core : 4.1
android plugin : 2.3.3
OS : Windows 7 6.1 (amd64)
### Bundles
| type | name | PP | sdk | aapt | support | file | size |
|------|------|----|-----|--------|---------|------|------|
| host | app | | 26 | 26.0.0 | 26.0.0 | | |
组件集成
- 组件依赖声明
==组件声明均配置在app/src/main/assets/bundle.json目录下,公共库也需要声明==
==app+stub会被所有的lib.x依赖、所有的app.x组件依赖。而app.x则可以额外依赖不同的lib.x==
- 编译库
.\gradlew buildLib -q
指定插件存放架构目录(armeabi-v7a):
.\gradlew buildLib -q -Dbundle.arch=armeabi-v7a
3.编译依赖:
.\gradlew buildLib -q
指定插件存放架构目录(armeabi-v7a):
.\gradlew buildBundle -q -Dbundle.arch=armeabi-v7a
常见问题:
- android.content.res.Resources$NotFoundException:Resource ID #0x3c030025
解决方案:没有将lib公共库模块加入到bundle.json,没有注册该模块资源。 - Caused by: java.lang.IllegalArgumentException: You need to use a Theme.AppCompat theme (or descendant) with the design library
解决方案:不能再插件的Application中指定Theme,需要在<activity>标签中指定,并且重新编译插件。