首页 > 解决方案 > 当同一个 .jar 是应用程序和模块的依赖项时,“发现多个文件具有独立于操作系统的路径”错误

问题描述

我有一个项目,其中包含一个应用程序和一个名为“模拟器”的 java 库模块。应用程序和模块都需要 bluecove-2.1.0.jar 作为依赖项。我将 bluecove-2.1.0.jar 添加到应用程序和模块的 libs 文件夹中,我能够成功组装模块并生成 Emulator.jar。但是,当我构建应用程序时,遇到以下错误:

发现多个文件的操作系统独立路径为“bluecove-2.1.0.51.version”

有没有办法与应用程序和模块共享 bluecover-2.1.0.jar 库而不将其添加到两个 lib 文件夹并将其作为依赖项添加到两个 build.gradle 文件中?我假设这是造成该错误的原因,因为在它依赖于也使用 bluecove-2.1.0.jar 的模块之前,我能够使用 bluecove-2.1.0.jar 成功构建应用程序。

应用程序构建.gradle:

dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'com.android.support:appcompat-v7:28.0.0'
    implementation project(":Emulator")
    implementation files('libs/bluecove-2.1.0.jar')
}

模拟器模块 build.gradle:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation files('libs/bluecove-2.1.0.jar')
}

标签: androidgradle

解决方案


简而言之:将 .jar 添加为其自己的模块,然后在应用程序和模拟器模块中创建依赖项。

*Android Studio 3.4:

将 .jar 添加为自己的模块的步骤:

  1. 文件 -> 项目结构
  2. 选择左侧的模块选项卡
  3. 单击 + 按钮
  4. 向下滚动并选择“导入 .JAR/AAR 包”
  5. 输入 .jar 在计算机文件系统中的路径并为模块命名
  6. 点击完成

将新的 .jar 模块添加为依赖项的步骤:

  1. 文件 -> 项目结构
  2. 选择左侧的依赖项选项卡
  3. 选择应用模块选项卡
  4. 单击“Declared Dependencies”标题下方的 + 按钮(其他 + 按钮添加新模块)并选择选项 3“Module Dependency”
  5. 选择刚刚添加的新 .jar 模块
  6. 对仿真器模块重复步骤 3 到 5
  7. 单击应用然后确定

推荐阅读