我有一个使用library.aar
和library.jar
的Android Studio库项目。当我将其导出为mylib.aar
并将此新AAR用于其他应用/项目时,它无法找到library.aar
和library.jar
中定义的类。
我的build.gradle
看起来像这样:
apply plugin: 'com.android.library'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
defaultConfig {
minSdkVersion 15
targetSdkVersion 21
versionCode 1
versionName "1.0"
}
}
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile project(':library_dot_aar')
compile project(':library_dot_jar')
}
我使用New -> Module -> Import .JAR or .AAR Package
在Android Studio中导入了AAR和JAR文件,并将其作为依赖项添加到Project Structure -> Module Settings -> Dependencies -> Add Module Dependencies
中。
当我解压缩mylib.aar
时,它只有25KB(考虑library.aar
超过300KB,我认为mylib.aar
的大小将在相同的范围内)和包含的依赖项不包括在内。如何导出包含其内部所有依赖项的AAR?
答案 0 :(得分:2)
您必须检查this answer:
没有组合库的机制。它有点复杂 你可能想控制哪些依赖项被合并(for 例如,您可能不希望在其中包含support-v4。也 您需要合并资源和Android清单。
此时,除非你这样做,否则无法轻易入侵 确保资源在两个res文件夹之间没有冲突(for 实例,你可以在一个lib和strings_b.xml中使用strings_a.xml 另一个lib)。通过这种方式,你可以只是"合并"这两个res文件夹 将它们复制到同一个位置(而不是合并在一起) android res等级)。
对于Manifest它更复杂,但可以用一些习惯来实现 代码。
为此提供内置机制对我们的优先级非常低 不要期待很快。