#android #android-studio #android-d8 #vb4android #jdk-desugaring
Вопрос:
Я создаю библиотеку Android для платформы B4A.
Вот ситуация:
- Моя библиотека Android использует функции Java8 (такие как Лямбда)
- B4A (Basic4Android) использует устаревшее
dex
(вместоd8
) для создания приложений и, таким образом, несовместимо с java8 и не будет удаляться само по себе.
Использование моего aar
файла в B4A приводит к следующей ошибке:
Uncaught translation error: com.android.dx.cf.code.SimException:
invalid opcode ba (invokedynamic requires --min-sdk-version >= 26)
...
Решение официального форума состоит в том, чтобы очистить банку библиотеки с помощью инструмента desugar от Bazel, но, похоже, это приводит к Expected a load for ...
другой ошибке, а не к моему вопросу.
Мой вопрос:
Можно ли создать разделенную aar
библиотеку (совместимую с Java7 и без лямбды) с помощью Android Studio для этих случаев?
Я знаю, что d8
это делает удаление шугаринга, но его вывод- .dex
файлы, а не .jar
файл.
Что я пробовал:
Решение, указанное в функции Android с использованием Java 8, не помогло, потому что оно не создает совместимую банку, и ошибка все еще возникает.