Sir*_*lot 5 android project-structure gradle android-library kotlin
我想将一个 Android 库项目拆分为模块。预期的项目结构是:
?? androidLibraryModule
?
?? kotlinLibraryModuleA
?
?? kotlinLibraryModuleB
Run Code Online (Sandbox Code Playgroud)
哪里androidLibraryModule
取决于kotlinLibraryModuleA
和kotlinLibraryModuleB
:
dependencies {
implementation project(":kotlinLibraryModuleA")
implementation project(":kotlinLibraryModuleB")
}
Run Code Online (Sandbox Code Playgroud)
我将发布的唯一.aar
内容是构建的结果,androidLibraryModule
我希望它包含来自kotlinLibraryModuleA
和的代码kotlinLibraryModuleA
。到目前为止,我已经找到了实现这一目标的唯一途径是通过复制.jar
的文件kotlinLibraryModuleA
,并kotlinLibraryModuleB
到libs
的文件夹androidLibraryModule
是这样的:
task copyJar(type: Copy) {
from jar
into "${project(":androidLibraryModule").projectDir.absolutePath}/libs"
}
jar.finalizedBy(copyJar)
Run Code Online (Sandbox Code Playgroud)
这个解决方案有效,但感觉有点像黑客。这是唯一的解决方案还是有更好的方法来实现这一结果?
编辑:如果androidLibraryModule
是 Android 应用程序模块,则无需复制任务即可工作。
问题是,aar
默认情况下仅包含其模块中的代码和资源。当您创建应用程序时,库模块会将其依赖项传递给应用程序,因此所有类都包含在最终的 apk 中。
如果您只想将库发布为aar
,您有 2 个选择:
pom.xml
,例如。这个答案:Android 库依赖项从 POM with Gradle 中丢失 归档时间: |
|
查看次数: |
74 次 |
最近记录: |