Наконец я нашел основную причину и исправил эту проблему.
Изучив сообщения об ошибках, класс Android R8, вызвавший исключение, был: src / main / java / com / android / tools/r8/ArchiveClassFileProvider.java
Копая в источник R8, я нашел последние журналы и совершенно новый коммит, который изменяет кодировку при чтении файлов .zip:
https://r8.googlesource.com/r8/+/a26659a1d07b4dc4ad0c3f8dbafd47d49efbc438
Этот коммит меняет способ, которым R8 читает zip-архивы, используя кодировку UTF-8, и избегает использования кодировки платформы.Вот почему произошел сбой только Windows.
Я протестировал последний релиз R8 с этим коммитом, и он работал!Просто нужно добавить эти (+) строки в ваш проект build.gradle file.
repositories {
google()
jcenter()
+ maven {
+ url "http://storage.googleapis.com/r8-releases/raw"
+ }
}
dependencies {
+ classpath 'com.android.tools:r8:1.2.28'
classpath 'com.android.tools.build:gradle:3.2.0-alpha18'
classpath 'com.google.gms:google-services:4.0.0'
}
"com.android.tools:r8:1.2.28" must будет первым в зависимостях.
Согласно BUG 109992855 , новая версия R8 будет отправлена в Android Studio 3.2 примерно через две недели.Тем временем вы должны использовать вышеуказанное исправление.
Надеюсь, что это поможет любому, кто наткнулся на эту ошибку.