Android 获取 R8 错误:尝试使用缩小版本运行 UI 测试时已经有映射

问题描述

我希望能够在缩小版本上运行 UI 测试。但是当我跑

 ./gradlew connectedDebugAndroidTest

我收到此错误

> Task :app:minifyDebugAndroidTestWithR8
R8: 'void zza(com.google.android.gms.common.internal.BaseGmsClient,int,android.os.IInterface)' already has a mapping

我尝试为测试创建一个单独的 proguard 文件

buildTypes {
        debug {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),'proguard-rules.pro'
            testProguardFile 'proguard-test.pro'
# proguard-test.pro:
-include proguard-rules.pro
-keepattributes SourceFile,LineNumberTable
-dontobfuscate
-dontwarn
-dontshrink

但这并没有帮助。不知道还能尝试什么。

解决方法

存在许多“已经有映射”的问题(最近的是 issuetracker.google.com/140851070)。 Android Studio 4.2 已修复所有此类已知问题(目前为预览版,developer.android.com/studio/preview)。

还可以使用 AGP 4.2.0-rc01,而无需更新 Android Studio,方法是使用此依赖项:顶级 com.android.tools.build:gradle:4.2.0-rc01 文件中的 build.gradle