繁体   English   中英

如何将项目模块库暴露给 App 模块(Android Studio)

[英]How to expose Project Module Library to App Module (Android Studio)

起初,我为 Android 应用程序使用单个模块app程序,但现在我想将模块分为app模块(核心业务逻辑和 UI)和libraries模块(HTTP 相关和基本抽象类)。

我将新的libraries模块作为库模块,并开始将一些实用程序代码从app移动到libraries ,但问题来了。 问题是,我希望我的app使用libraries模块中使用的依赖项,而不必在两个 build.gradle 中包含相同的依赖项。

在我的app模块中,我希望我的源代码使用libraries中定义的RecyclerViewRetrofit ,但除非我在我的 app/build.gradle 中还包含retrofitrecyclerview-v7 ,否则我不能这样做。

应用程序/main/src/..../HomeActivity.kt

var gridDataset: RecyclerView? = null // RecyclerView not found in classpath

应用程序/build.gradle

implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation project(":libraries")

库/build.gradle

implementation "com.android.support:recyclerview-v7:$support_library_version"
implementation "com.squareup.retrofit2:retrofit:2.4.0"
implementation "com.squareup.retrofit2:converter-gson:2.4.0"
implementation "com.squareup.retrofit2:adapter-rxjava2:2.4.0"
implementation "com.squareup.okhttp3:logging-interceptor:3.8.0"

我哪里做错了? 或者根本不可能做到这一点?

使用 api 而不是实现在 library/build.gradle 中指定您的依赖项

这应该将这些依赖项添加到任何模块的类路径中,具体取决于您的库模块

api "com.android.support:recyclerview-v7:$support_library_version"
api "com.squareup.retrofit2:retrofit:2.4.0"
api "com.squareup.retrofit2:converter-gson:2.4.0"
api "com.squareup.retrofit2:adapter-rxjava2:2.4.0"
api "com.squareup.okhttp3:logging-interceptor:3.8.0"

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM