Android Studio 2.3 Beta 1 + Поддержка 25.1.0 = Предварительный просмотр сломанной
Android Studio 2.3 Canary 3. Поддержка библиотек 25.1.0.
Презентации макета полностью нарушены. Все, что содержит связанный с поддержкой просмотр, кажется, прерывается во время предварительного просмотра.
Во всех случаях это начало стека:
Exception Details java.lang.NoSuchFieldError: ViewBackgroundHelper
at android.support.v7.widget.AppCompatBackgroundHelper.loadFromAttributes(AppCompatBackgroundHelper.java:46)
at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:63)
at android.support.v7.widget.AppCompatImageView.<init>(AppCompatImageView.java:56)
....
.. Etc.
Не имеет значения, что такое макет, теперь я получаю эту кровавую проблему с проблемой ViewBackgroundHelper
. Кажется, не имеет значения, какой тип макета или какие представления в нем. Все, что кажется через AppCompat, попадает в эту ошибку в предварительном просмотре.
Никогда раньше этого не видел. Ранее был Android Studio 2.3 Canary 2 + Support libs 25.0.1.
Кажется, что просто невозможно обновить Android Studio или ее поддерживающие libs, не тратя часы на этот тип вещей, эй?
Спасибо за любые подсказки, спасибо -
UPDATE
Похоже, я не единственный. Нашел ошибку, зарегистрированную здесь, уже снятую многими людьми:
https://code.google.com/p/android/issues/detail?id=230183
ОБНОВЛЕНИЕ 2
Еще проблема с AS 2.3 Beta 1. Все еще не видно моих макетов. То же java.lang.NoSuchFieldError: ViewBackgroundHelper
ошибка везде.
Ответы
Ответ 1
Все работает сейчас.
- Я обновил сегодня до самой новой Android Studio: 2.3 Beta 3
- Мне было предложено обновить до последней версии
com.android.tools.build:gradle:2.3.0-beta3
Перезапуск, недействительность, перестройка; все окончательно отлично отображается в области предварительного просмотра в первый раз за 6 недель.
Похоже, они исправили это. Наконец-то.
Ответ 2
Согласно трекеру вопросов, по состоянию на 10 января 2017 года:
https://code.google.com/p/android/issues/detail?id=230183
Для тех из вас, кто использует плагин 2.3.0-beta1 Gradle, вы могли бы отключите кеш сборки, добавив
android.enableBuildCache=false
в ваш gradle.properties
файл и сообщите нам, если это устраняет проблему для тебя. После добавления строки к вашим gradle.properties, пожалуйста перестройте проект.
Спасибо.
Проверено решение проблемы для некоторых пользователей.
Ответ 3
Я подал вопрос на трекер. Другие участники обнаружили, что удаление некоторых других зависимостей библиотеки, отличных от android, заставляет проблему уходить. Исходя из этого, я нашел решение (отредактированное из потока проблем):
Дополнительная информация после дальнейшего изучения:
Android Studio 2.2.3
Build # AI-145.3537739, построенный 2 декабря 2016 года
JRE: 1.8.0_76-release-b03 amd64
JVM: 64-разрядная виртуальная машина OpenJDK от JetBrains s.r.o
Поддержка libs: 25.1.0
Инструменты построения: 25.0.2
После воспроизведения этой версии на вышеупомянутой студийной версии (2.2.3 Stable) я начал удалять другие зависимости библиотек на основе информации, предоставленной другими в этом потоке. После удаления библиотеки каллиграфии (https://github.com/chrisjenx/Calligraphy) и связанного кода предварительный просмотр макета снова начал работать правильно.
Интересно, что мне удалось повторно добавить библиотеку каллиграфии, и просмотр макета продолжал работать. Может быть, это указывает на какую-то проблему кэширования с помощью плагина android gradle?
Для других, сталкивающихся с этой проблемой, я предлагаю следующее:
1. Определите библиотеку, вызывающую проблему.
2. Удалите зависимость библиотеки и связанный код
3. Сделайте полную очистку и постройте
4. Проверьте работу предварительного просмотра макета
5. Повторно добавьте зависимость библиотеки
6. Сделайте полную очистку и постройте
7. Проверьте работу предварительного просмотра макета
Примечание. Я подозревал, что проблема с каллиграфией вызвала проблему, поскольку она использует собственный атрибут xml под названием "fontPath", а также некоторые манипуляции с контекстом. Если у вас есть какие-либо библиотеки, которые просматривают манипуляции под капотом, я предлагаю сначала удалить их.
Ответ 4
Измените стиль AppTheme на это:
<style name="AppTheme" parent="Base.Theme.AppCompat.Light.DarkActionBar">
</style>
Ответ 5
У меня есть решение, проблема не в версии Android Studio.
Проблема в том, что версия Gradle вернется к стабильной версии 2.2.3, она работает для меня после нескольких тестов. Это ошибка в бета-версии Gradle, и она уже сообщается в google.
Ответ 6
Я решил эту проблему на следующих шагах
- Удалить <project> /<module> /build/build/intermediates/exploded-aar
- Проект перестройки
- Убедитесь, что в exploded-aar есть только одна версия поддержки-библиотеки