0

我有像这样的项目结构

应用程序 :

即时应用:

图书馆:

动态特征1:

动态特征2:

动态特征3:

现在动态特性1和动态特性2之间存在一些依赖关系。现在,如果我将它作为依赖项添加到 dynamic-feature2 build.gradle 中,那么它将导致循环依赖。以上只是一个例子,还有很多其他情况。如何正确处理此类依赖冲突或任何建议?

4

1 回答 1

0

从主应用模块通信到动态功能模块

您可以通过 Java 中的反射来做到这一点。确保您的类和方法名称在动态模块中没有被混淆。

从模块中获取片段/活动或其他类:

Class class = Class.forName("your.dynamic.module.package.name.classname");

从你的类中获取一个方法:

Method method = class.getMethod("GenerateQuestion");

调用方法:

method.invoke(objectYouWantToInvokeTheMethodOn);

从动态功能模块到主模块的通信

要获取动态功能模块片段的父活动,您可以执行以下操作:

@Override
public void onAttach(Context context) {
    super.onAttach(context);
    activity = (Activity) context;
}

然后,您可以调用该活动的方法。

于 2021-03-14T08:34:37.567 回答