Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 问题:数据绑定不使用仅限运行时的渐变依赖项_Android_Gradle_Android Databinding - Fatal编程技术网

Android 问题:数据绑定不使用仅限运行时的渐变依赖项

Android 问题:数据绑定不使用仅限运行时的渐变依赖项,android,gradle,android-databinding,Android,Gradle,Android Databinding,希望有人能解释为什么当特定模块声明为runtimeOnly时,与声明为implementation时,每个模块的数据绑定似乎不起作用(返回null) 例如 假设我有一些功能模块,我想包括或排除(类似于动态功能模块),但我现在不使用它,因为其他原因我将不进行讨论,这更像是一个实验。因此,我们的想法是将多个组件从主应用程序中分离出来,这些组件只在运行时可用,因此换句话说,应用程序和任何附加功能之间都没有耦合,在我将数据绑定添加到组合中之前,这一切都可以正常工作,*绑定不能为空 我让这个设置工作的唯

希望有人能解释为什么当特定模块声明为
runtimeOnly
时,与声明为
implementation
时,每个模块的数据绑定似乎不起作用(返回null)

例如

假设我有一些功能模块,我想包括或排除(类似于动态功能模块),但我现在不使用它,因为其他原因我将不进行讨论,这更像是一个实验。因此,我们的想法是将多个组件从主应用程序中分离出来,这些组件只在运行时可用,因此换句话说,应用程序和任何附加功能之间都没有耦合,在我将数据绑定添加到组合中之前,这一切都可以正常工作,
*绑定不能为空

我让这个设置工作的唯一方法是从
runtimeOnly
切换回
implementation
,据我所知,
runtimeOnly
implementation
之间的区别如下:

因此,我的问题是为什么会发生这种情况,在模块中启用数据绑定是否需要为模块配置
实现
?或者可能我做得都不对,并且误解了
runtimeOnly
的目的

提前谢谢,如果问题不够全面,请道歉

  • 实现:我们主要使用实现配置。它隐藏了模块对其使用者的内部依赖关系,以避免意外使用任何可传递依赖关系,从而加快编译速度,减少重新编译

  • 仅限运行时:当我们希望在运行时(在最终构建中)更改或交换库的行为时

对于runtimeOnly,您需要两个依赖项—一个帮助您在编译时访问代码,另一个将在运行时替换/使用

运行时示例:

SLF4J是runtimeOnly的最佳示例之一,我们将使用SLF4J api作为实现配置,并将SLF4J api的实现(如SLF4J-log4j12或logback classic等)作为runtimeOnly配置

我创建了一个,深入了解了