构建 androidTest apk 出现 R8 错误:"already has a mapping"

building androidTest apk gets R8 errors: "already has a mapping"

我已将 minifyEnabled=true 添加到我的 'release' 构建中。该应用程序运行正常。并且 androidTest apk 运行正确(所有测试通过)。

如果我将以下 任何 添加到 proguard-rules.pro:

-keepattributes LineNumberTable
-keepattributes LocalVariableTable
-keepattributes LocalVariableTypeTable

应用程序 apk 将无错误地构建,但是在构建 androidTest apk 时我得到 ~4000 R8 "already has a mapping" 任务错误:

:app:transformClassesAndResourcesWithR8ForReleaseAndroidTest

(截断的)错误日志是

出现错误的方法似乎在第 3 方库中(作为依赖项包含在内)。

在此先感谢您的帮助。

我通过添加额外的 buildType 来测试 'release' 配置 ('releaseTest') 解决了这个问题。它继承自'release',并设置debuggable=true

buildTypes {
    debug {
        ...
    }
    release {
        ...
        minifyEnabled true    // enable code shrinking & obfuscation
        shrinkResources true  // enable resource shrinking
        ...
    }
    releaseTest {
        // inherit from 'release' buildType
        initWith release
        // for dependencies that don't know what 'releaseTest' is
        matchingFallbacks = ['release']

        debuggable true
   }

我遇到了同样的问题并添加

-dontoptimize

进入我的 proguard-rules.pro 对我有用。