【问题标题】:More than one file was found with OS independent path 'classes.jar' & 'com.android.tools.build:gradle:3.5.0'找到多个文件,其独立于操作系统的路径 'classes.jar' & 'com.android.tools.build:gradle:3.5.0'
【发布时间】:2019-08-30 10:47:38
【问题描述】:

更新到“com.android.tools.build:gradle:3.5.0”

发现编译错误:

任务“:truecp_player:mergeDebugJavaResource”执行失败。 执行 com.android.build.gradle.internal.tasks.Workers$ActionFacade 时发生故障 发现多个文件具有独立于操作系统的路径“classes.jar”

ps: 'com.android.tools.build:gradle:3.4.2' 工作正常。

更新: 如果库模块具有一些本地 .aar 文件依赖项,则错误将 发生!

库模块:

apply plugin: 'com.android.library'

def androidConfig = rootProject.extensions.getByName("ext").android

android {
    compileSdkVersion androidConfig.compileSdkVersion
    buildToolsVersion androidConfig.buildToolsVersion

    defaultConfig {
        minSdkVersion 21
        targetSdkVersion 29
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        consumerProguardFiles 'consumer-rules.pro'
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

dependencies {
    api fileTree(include: ['*.jar', "*.aar"], dir: 'libs')

    implementation 'androidx.appcompat:appcompat:1.0.2'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
}


【问题讨论】:

  • 你能解决这个问题吗?我也面临同样的问题

标签: android


【解决方案1】:

我遇到了完全相同的问题,它是由 .aar 和 .jar 库引起的。看起来您的项目中也包含了其中一些:

api fileTree(include: ['*.jar', "*.aar"], dir: 'libs')

在我的特定情况下,其中一个 .aar 文件还包含与 /libs 文件夹中的另一个 .jar 文件同名的 .jar 文件。此外,我不得不改变导入 .aar 文件的方式:从 /libs 文件夹到官方文档和here 中描述的独立 gradle 模块。

【讨论】:

    【解决方案2】:

    aars 中提取jars 可修复此错误。

    • 解压file_name.aar
    • mv classes.jar file_name.jar

    libs 文件夹中的所有aars 执行此操作。从目录中删除除 jar 文件之外的所有其他内容。

    【讨论】:

    • 您如何称其为解决方案。还需要其余的 aar 文件内容。我们如何才能删除它?
    • 感谢您对此事的关注。如果您能解释我的方法的缺点和影响,那对我和 OP 都会非常有帮助。
    • 如果你想要临时依赖,你将 aars 存储在一个 maven 存储库中(即使它只是 ~/.m2/repository)。这个解决方案是诊断的一个步骤,而不是解决方案。
    【解决方案3】:

    此问题在此处跟踪:https://github.com/gradle/gradle/issues/10882

    目前,Gradle 中还没有修复它。

    一种可能的解决方法是将 aar 发布到工件。有关这方面的信息,请参阅 there

    编辑:在我的情况下,我可以使用 gradle plugin 3.6.4 来解决问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-11
      • 2019-07-23
      • 2019-08-14
      相关资源
      最近更新 更多