如何解决 android 库中依赖模块的依赖关系
How to resolve dependency in android library for depended modules
我正在开发一个由 5 个模块创建的 Android SDK。以下每个模块都是一个 android 库:
-查看
-IO
-域
-基地
-实用程序
并且 view
模块已将所有模块导入到它的 Gradle 中,如下所示:
/*-----------------------/IO Module\-------------------*/
implementation project(path: ':io')
/*-----------------------/Base Module\-------------------*/
implementation project(path: ':base')
/*-----------------------/Domain Module\-------------------*/
implementation project(path: ':domain')
/*-----------------------/Util Module\-------------------*/
implementation project(path: ':util')
但是当我想将我的库导入应用程序时,通过添加 view
模块的依赖性,其他模块的 类 将无法在应用程序中识别,我必须导入所有模块都放入我的应用程序 Gradle 文件中。像这样:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
/*-----------------------/view Module\-------------------*/
implementation project(path: ':view')
/*-----------------------/Domain Module\-------------------*/
implementation project(path: ':domain')
/*-----------------------/Base Module\-------------------*/
implementation project(path: ':base')
/*-----------------------/Util Module\-------------------*/
compile project(path: ':util')
}
您想在视图 build.gradle
文件中使用 api
而不是 implementation
。 api
与弃用的 compile
选项相同,但 implementation
仅向您的模块提供 类,而不向依赖它的模块提供。
我正在开发一个由 5 个模块创建的 Android SDK。以下每个模块都是一个 android 库:
-查看
-IO
-域
-基地
-实用程序
并且 view
模块已将所有模块导入到它的 Gradle 中,如下所示:
/*-----------------------/IO Module\-------------------*/
implementation project(path: ':io')
/*-----------------------/Base Module\-------------------*/
implementation project(path: ':base')
/*-----------------------/Domain Module\-------------------*/
implementation project(path: ':domain')
/*-----------------------/Util Module\-------------------*/
implementation project(path: ':util')
但是当我想将我的库导入应用程序时,通过添加 view
模块的依赖性,其他模块的 类 将无法在应用程序中识别,我必须导入所有模块都放入我的应用程序 Gradle 文件中。像这样:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
/*-----------------------/view Module\-------------------*/
implementation project(path: ':view')
/*-----------------------/Domain Module\-------------------*/
implementation project(path: ':domain')
/*-----------------------/Base Module\-------------------*/
implementation project(path: ':base')
/*-----------------------/Util Module\-------------------*/
compile project(path: ':util')
}
您想在视图 build.gradle
文件中使用 api
而不是 implementation
。 api
与弃用的 compile
选项相同,但 implementation
仅向您的模块提供 类,而不向依赖它的模块提供。