我正在构建android库项目,它依赖于另一个内部库项目.
我想知道是否有办法打包单个AAR库,其中已包含内部库.我想只与我的应用程序开发人员共享一个AAR库包.
这是我的build.gradle文件当前的样子,但目前它们生成单独的AAR文件,并且两者都需要包含在Application的build.gradle中.由于应用程序是由另一家公司构建的,我们需要与它们共享最终的AAR文件,而不是完整的库项目.
----- internalLib -------- >>>>>>>>>>
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.7.+' } } apply plugin: 'android-library' repositories { mavenCentral() } android { compileSdkVersion 18 buildToolsVersion '18.1.1' } dependencies { compile 'com.android.support:support-v4:18.0.0' }
----- externalLib --------
buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.7.+' } } apply plugin: 'android-library' repositories { mavenCentral() } android { compileSdkVersion 18 buildToolsVersion '18.1.1' } dependencies { compile 'com.android.support:support-v4:18.0.0' compile project(':internalLib') }
Xavier Ducro.. 35
没有组合库的机制.这有点复杂,因为您可能想要控制哪些依赖项被合并(例如,您可能不希望在那里包含support-v4).您还需要合并资源和Android清单.
此时除非您确定资源在两个res文件夹之间没有冲突(例如,您可以在一个lib中使用strings_a.xml而在另一个lib中使用strings_b.xml),否则无法轻易入侵某些内容.这样你就可以通过将两个res文件夹复制到同一个位置来"合并"它们(而不是在android res级别进行合并).
对于Manifest来说,它会更复杂,但可以使用一些自定义代码.
为此提供内置机制对我们的优先级非常低,所以不要期望它很快就会出现.
没有组合库的机制.这有点复杂,因为您可能想要控制哪些依赖项被合并(例如,您可能不希望在那里包含support-v4).您还需要合并资源和Android清单.
此时除非您确定资源在两个res文件夹之间没有冲突(例如,您可以在一个lib中使用strings_a.xml而在另一个lib中使用strings_b.xml),否则无法轻易入侵某些内容.这样你就可以通过将两个res文件夹复制到同一个位置来"合并"它们(而不是在android res级别进行合并).
对于Manifest来说,它会更复杂,但可以使用一些自定义代码.
为此提供内置机制对我们的优先级非常低,所以不要期望它很快就会出现.