如何使用Gradle解决模块中的循环依赖?

时间:2015-07-15 08:46:18

标签: android android-studio gradle android-gradle

项目结构就像这样

  1. 主要模块:这是基本应用程序代码
  2. 增强模块1:这是一个额外功能的附加功能,它有自己的Activity,它使用主模块中的一些代码。
  3. 增强模块2:与模块1相同,但另一个开发人员正在开发另一个功能。还使用主模块中的一些代码。
  4. 现在,由于模块1和模块2具有需要从主模块调用的自己的活动,因此存在循环依赖性问题。主模块需要调用模块1中的活动,模块1需要来自Main的一些代码。

    那么如何使用gradle在Android Studio中解决这类依赖问题?

2 个答案:

答案 0 :(得分:1)

将两个增强模块使用的公共代码移动到另一个模块,并创建两个应用程序模块:

  • common
  • enhancement 1取决于common
  • enhancement 2取决于common
  • app 1取决于enhancement 1
  • app 2取决于enhancement 2

如果需要,创建另一个模块common-app以包含两个应用程序之间共享的公共代码。

答案 1 :(得分:0)

您可以通过隐式Intent进行此操作。 假设您希望Module1中的Activity1启动Module2中的Activity2,但您不能这样做,因为那样会导致循环依赖。 转到Module2中的AndroidManifest.xml并将android:exported="true"设置为Activity2的属性。然后,在Activity1中,执行以下操作:

Intent intent = new Intent();
intent.setComponent(new ComponentName("com.example.module2", "com.example.module2.Activity2"));
startActivity(intent);
finish();