Разве R8 не поддерживает applyMapping? - PullRequest
0 голосов
/ 09 января 2020

Использование applyMapping приведет к исключению при компиляции, например:

R8: 'boolean readField(int)' already has a mapping

FAILURE: сборка не удалась с исключением.

  • Что пошло не так: выполнение задачи не выполнено ': приложение: transformClassesAndResourcesWithR8ForRelease.

    com. android .tools.r8.CompilationFailedException: не удалось завершить компиляцию

My Android Версия подключаемого модуля Gradle - 3.5.3, I найти это вопрос R8. Потому что, когда отключить R8, applyMapping работает нормально, включите R8, он не будет работать. Мне нравится, что Mapping.txt, сгенерированный R8, имеет повторяющиеся методы, подобные этому:

1:1:boolean readField(int):0 -> a
2:2:boolean readField(int):0:0 -> a

Если удалить один из них, он будет работать нормально.

1 Ответ

0 голосов
/ 20 января 2020

Вы используете более старую версию R8, которая слишком охотно сообщает об ошибке в файле сопоставления. Попробуйте использовать более старую версию, добавив в файл build.gradle верхнего уровня следующее:

buildscript {

repositories {
    maven {
        url 'http://storage.googleapis.com/r8-releases/raw'
    }
}

dependencies {
    classpath 'com.android.tools:r8:1.6.60'          // Must be before the Gradle Plugin for Android.
    classpath 'com.android.tools.build:gradle:X.Y.Z' // Your current AGP version.
 }

}

Это должно помочь вам выпуск.

...