Компиляция d8 dex не удалась при обессахаривании

Я не могу заставить компилятор d8 dex скомпилировать мой пакет jar:

      $ wget https://repo1.maven.org/maven2/org/mockito/mockito-core/3.6.0/mockito-core-3.6.0.jar
$ java -jar d8_2.1.86.jar --output /tmp mockito-core-3.6.0.jar 2>&1 >/dev/null | grep "Compilation"
com.android.tools.r8.errors.CompilationError: Class or interface java.lang.RuntimeException required for desugaring of try-with-resources is not found.
Compilation failed

Я пытался прочитать о проблемах с удалением сахара, но не смог уйти - что не так с этой банкой?

1 ответ

Если вы передадите android.jar или java runtime jar как --lib в свою компиляцию, вы не увидите этого исключения. Однако в вашей компиляции d8 есть много других предупреждений, потому что типы, которые необходимы для обессахаривания, отсутствуют. Это из-за зависимостей пакета mockito, которых у вас нет во входных данных или в пути к классам. См. Также:https://developer.android.com/studio/command-line/d8#j8.

Другие вопросы по тегам