Small組件化系列
宿主集成:
==編輯該文時暫時不支持gradle 3.0.0版本,會出現(xiàn)找不到libraries的錯誤,使用android studio3.0的同學(xué)請將gradle版本設(shè)置為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'
- 設(shè)置Small運行庫版本:
small {
aarVersion = '1.3.0-beta3'
}
當(dāng) 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
指定插件存放架構(gòu)目錄(armeabi-v7a):
.\gradlew buildLib -q -Dbundle.arch=armeabi-v7a
3.編譯依賴:
.\gradlew buildLib -q
指定插件存放架構(gòu)目錄(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>標簽中指定跃巡,并且重新編譯插件危号。