Android Studio правильно компилирует проект, Gradlew не с включенной привязкой данных - PullRequest
1 голос
/ 21 января 2020

После обширных поисков в Google и поиске, я не смог найти решение своей проблемы.

Проблема:

В моем проекте в настоящее время включена функция Databinding v2, а в моем XML у меня есть 2-сторонняя привязка данных для свойств модели представления.

Android Studio (v3.5.3) может нормально скомпилировать проект и не имеет ошибок

Использование инструмента командной строки ./gradlew assemble<Release_type> приведет к

javax/xml/bind/JAXBException

Решение:

В Google и SO было несколько подсказок относительно изменений, сделанных с Java8 -> Java11 в отношении этой библиотеки. Я не совсем уверен, что это было за изменение, но Java11 не включает в себя библиотеку, необходимую для компиляции приложения. После дальнейшей проверки я понял, что я использую OpenJDK 11, а не OpenJDK 8. Согласно различным источникам, решением этой проблемы было установить OpenJDK 8.

Шаги к успеху:

  1. Удаление OpenJDK 11 или выше
  2. Выполните следующую команду
brew tap AdoptOpenJDK/openjdk
brew cask install adoptopenjdk8
  1. сейчас запуск ./gradlew assemble<release_type> должен работать как положено.

Что это решает

  1. fastlane, не способный построить
  2. gradlew не может построить

Заключение

Дальнейший поиск в Google привел меня к нескольким статьям, связанным с OpenJDK 11. Очевидно, Android Studio пока не поддерживает OpenJDK 11, но Android Studio 4.x будет. - ссылка на сообщение SO

Я знаю, что это не "реальный" вопрос, но я оставляю его здесь в надежде, что кто-то еще, очень расстроенный (как я), найдет это потенциальное решение полезным и надеюсь, Google индексирует эту статью :)

1 Ответ

1 голос
/ 21 января 2020

Подробные сведения см. Выше Решение

TLDR

Шаги к успеху:

Удаление OpenJDK 11 или выше. Выполните следующую команду brew tap AdoptOpenJDK / openjdk brew cask install accepttopenjdk8 Сейчас выполняется ./gradlew сборка должна работать как положено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...