1

我的 android gradle 版本有很多口味。其中之一有一个包含重复依赖项(com.google.zxing)的 aar 文件。

构建.gradle:

...
dependencies {
    implementation 'com.google.zxing:core:3.3.3'
    implementation 'me.dm7.barcodescanner:zxing:1.9.8'
    // Standard flavour
    standardImplementation(name: 'libgedi-0.190121.gpos800', ext: 'aar') {
        exclude group: 'com.google.zxing', module: 'android-core'
        transitive = false
    }
    ...
}

此配置为“标准”构建生成以下内容(适用于其他风格):

    Duplicate class com.google.zxing.BarcodeFormat found in modules core-3.3.3.jar (com.google.zxing:core:3.3.3) and zxing-2.1.jar (:libgedi-0.190121.gpos800:)
    Duplicate class com.google.zxing.Binarizer found in modules core-3.3.3.jar (com.google.zxing:core:3.3.3) and zxing-2.1.jar (:libgedi-0.190121.gpos800:)
    Duplicate class com.google.zxing.BinaryBitmap found in modules core-3.3.3.jar (com.google.zxing:core:3.3.3) and zxing-2.1.jar (:libgedi-0.190121.gpos800:)
    Duplicate class com.google.zxing.ChecksumException found in modules core-3.3.3.jar (com.google.zxing:core:3.3.3) and zxing-2.1.jar (:libgedi-0.190121.gpos8
    ...

我试图将配置更改为:

    standardImplementation(name: 'libgedi-0.190121.gpos800', ext: 'aar') {
        configurations {
            all*.exclude group: 'com.google.zxing'
        }
    }

上面的配置仅在我构建“标准”风格时才有效。对于另一种风格,会发生此错误:

error: package com.google.zxing.qrcode.decoder does not exist

我做错了什么?

4

1 回答 1

2

解决方案:

{
    configurations {
        exclude group: 'com.google.zxing'
    }
}

使用排除代替所有*排除

于 2019-10-31T17:41:05.843 回答