android - 从 java 模块中引用 android 库

标签 android gradle dependencies

长话短说!

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

Warning:Ignoring dependency of module 'backtory-android-sdk' on module 'javasample'. Java modules cannot depend on Android modules


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 模块,则前面的问题解决了,但我们的用户至少必须手动添加一些 list 内容(我们的 SDK 目前是一个 Android 库模块)。由于我们几乎所有的 SDK 用户都是 Android 开发人员,因此这不是很理想。

  • 由于我知道只能发布 Android 库的源代码,我认为最好坚持 Android 库模块并将其发布为两种类型的 AAR 和 JAR,然后问题减少到引用 backtory-android-sdk 的源代码来自 javasample .

    最佳答案

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

  • 也许 你的依赖需要倒置 .否则,您的主要 Java 模块将需要更新为 Android 模块。
  • 或者,如果 android 模块不执行任何特定于 Android 的操作,使其成为常规 Java 模块 .
  • 最可能的情况是 您需要第三个模块 - 一个将两个部分联系在一起的 Android 应用程序
  • 关于android - 从 java 模块中引用 android 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46155960/

    相关文章:

    java - 在多个应用程序中使用自定义 AccountAuthenticator

    gradle - 找不到 play-services-basement.aar

    java - 可以从公共(public)使用中删除 Maven 依赖项吗?

    gradle - 使用 Gradle 将依赖项打包到 WAR 中,同时将临时依赖项留在 EAR 中

    android - 如何在 flutter 中为 android build 设置 .gradle 目录的自定义路径

    android - 混合依赖版本

    java - OBD II 命令获取距离

    java - Android Log类中的d方法

    java - 从 JSON 创建动态对象

    gradle - groovy/gradle插件无法有条件地构建