从java模块引用android库

时间:2017-09-11 12:36:34

标签: android gradle dependencies

长话短说!

我想将一个Android库依赖项添加到Java模块,它说

  

警告:忽略模块'backage-android-sdk'对模块'javasample'的依赖性。 Java模块不能依赖于Android模块

backtory-android-sdk没有Android相关的“编译依赖”(类似于改造),如果有办法将依赖添加到backtory-android-sdk的“classes.jar”,我认为它会工作。我怎么能这样做?

解释问题......

我正在开发一个主要执行网络请求(backtory-android-sdk)的Android库,并且不依赖于Android的东西,所以它可以在java项目中初始化和使用。我还有一个Java模块(一个名为javasample的控制台项目),用于Android库的手动测试(团队的其他成员也用于某些自动化测试)。这是混乱:

  • 如果我将backtory-android-sdk定义为Android库,我无法从javasample引用它,抱怨警告:忽略模块'backtory-android-sdk'对模块'javasample的依赖”。 Java模块不能依赖于Android模块
  • 如果我将其定义为Java模块,则之前的问题会解决,但我们的用户至少必须手动添加一些清单内容(我们的SDK目前是Android库模块)。由于我们的几乎所有SDK用户都是Android开发人员,因此这不是很理想。

由于我知道只能发布Android库的源代码,我认为它更好地坚持使用Android库模块并将其发布为两种类型的AAR和JAR,然后将问题简化为引用backtory-android-sdk的源代码来自javasample

1 个答案:

答案 0 :(得分:3)

这是因为Android模块包含的android组件无法在普通的Java设置上运行。

  • 或许您的依赖关系需要反转。否则,您的主Java模块将需要更新为Android模块。

  • 或者,如果Android模块没有执行任何特定于Android的操作,使其成为常规Java模块

  • 最有可能的情况是您需要第3个模块 - 将这两个部分联系在一起的Android应用程序