android-manifest - Android库多模块

  显示原文与译文双语对照的内容
0 0

我在android上构建一个库,它由一个大核心和几个模块组成( 让我们将它们命名为A 。B 。C 和E
这些模块有时需要另一个库,有时还需要在结果清单中添加一些东西。

我想用任意数量的模块来构建我的核心。
我首先创建了真正有用但在我的案例中却有点局限的风格。 如果我想为每种情况创造一种风格,那就意味着创造了很多 !

编辑:一个gradle文件,用来解释我想做什么。


apply plugin: 'com.android.library'

android {
 compileSdkVersion 21
 buildToolsVersion"21.1.2"

 flavorDimensions"libA","libB","libC","libD","libF"
 defaultConfig {
 minSdkVersion 10
 targetSdkVersion 21
 versionCode 11
 versionName"3.1.0"
 }

 productFlavors {
 A {
 flavorDimension"libA"
 }

 B {
 flavorDimension"libB"
 }

 C {
 flavorDimension"libC"
 }

 D {
 flavorDimension"libD"
 }

 E {
 flavorDimension"libB"
 }

 F {
 flavorDimension"libF"
 }
 }

 sourceSets {
 A {
 java {
 srcDirs = ['src/A']
 }
 }

 B {
 java {
 srcDirs = ['src/B']
 }
 }

 C {
 java {
 srcDirs = ['src/C']
 }
 }

 D {
 java {
 srcDirs = ['src/D']
 }
 }

 E {
 java {
 srcDirs = ['src/E']
 }
 }

 F {
 java {
 srcDirs = ['src/F']
 }
 }
 }
}

dependencies {
 compile 'com.android.support:appcompat-v7:21.0.3'
 compile 'com.google.android.gms:play-services:6.5.87'

 androidTestCompile 'org.mockito:mockito-core:1.10.19'
 androidTestCompile 'com.google.dexmaker:dexmaker:1.0'
 androidTestCompile 'com.google.dexmaker:dexmaker-mockito:1.0'

 ACompile files('libs/A-2.1.0.jar')

 BCompile files('libs/B-4.1.0.jar')

 CCompile files('libs/C-5.1.0.jar')

 DCompile files('libs/D-1.01.jar')

//same library as B, but different version
 ECompile files('libs/B-5.2.2.jar')

//F nothing
}

我希望能够产生的是:

A.aar
B.aar
C.aar
D.aar
E.aar
F.aar
a+b 。aar
a+c 。aar
a+d 。aar
a+e 。aar
a+f 。aar
a+b+c 。aar
a+b+d 。aar
a+b+f 。aar ( 自B 和E 不兼容)
a+c+d 。aar
a+c+e 。aar

等等 等等 等等 。

当我尝试使用gradle文件并启动"gradlew assembleRelease"时,只获取: a+b+c+d+f 。aar和 a+c+d+e+f 。aar

为了获得我想要的结果而修改的内容?

是否有更简单的方法来完成这种构建?

时间: 原作者:

0 0

创建多个独立的android库模块,并使用自定义gradle脚本来拉和使用必要的模块

原作者:
...