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

Posted

技术标签:

【中文标题】Android 获取 R8 错误:尝试使用缩小版本运行 UI 测试时已经有映射【英文标题】:Android Getting R8 error: Already has a mapping when trying to run UI tests with minified build 【发布时间】:2021-07-03 20:23:14 【问题描述】:

我希望能够在缩小版本上运行 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

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

【问题讨论】:

您在哪个版本的 Android Studio/AGP 上看到此问题?该领域已经修复了许多问题,最新的是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.gradlefile 中。如果这不能解决问题,请在issuetracker.google.com/issues/new?component=326788 提交错误。 这似乎已经解决了,谢谢@sgjesse! 【参考方案1】:

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

也可以使用 AGP 4.2.0-rc01,而无需通过使用此依赖项更新 Android Studio:***build.gradle 文件中的com.android.tools.build:gradle:4.2.0-rc01

【讨论】:

以上是关于Android 获取 R8 错误:尝试使用缩小版本运行 UI 测试时已经有映射的主要内容,如果未能解决你的问题,请参考以下文章

Android R8 即时崩溃

如何修复因 ProGuard/R8 导致的崩溃?

如何使用最新的 R8 Shrinker 版本

D8和R8安卓的区别

com.android.tools.r8.utils.AbortException:错误:程序输入 - 不支持的源文件类型

如何让 R8 + proguard-android-optimize.txt + Google Drive API 无缝运行?