Ошибка надувания класса androidx.constraintlayout.widget.ConstraintLayout

После перехода на пакеты Androidx с помощью пункта меню Android Studio Refactor -> Refactor to Androidx ...

Я получаю следующую ошибку:

Error inflating class androidx.constraintlayout.widget.ConstraintLayout
45
0
34 403
13

Ответы 13

Просто замените

<androidx.constraintlayout.ConstraintLayout>

с участием

<androidx.constraintlayout.widget.ConstraintLayout>

В файлах xml вашего проекта.

Вы можете использовать ярлык Заменить в пути в Mac (⇧⌘F или ⇧⌘R) и Windows (Ctrl + Shift + R)

Убедитесь, что макет ограничения обновлен до последней версии:

implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

И замените имена тегов xml

<androidx.constraintlayout.ConstraintLayout>

с участием

<androidx.constraintlayout.widget.ConstraintLayout>

везде, где он появляется, используя этот ярлык:

Windows: CTRL + SHIFT + R

Mac: COMMAND + SHIFT + R

Та же ошибка может возникнуть и с android.constraintlayout.Guideline, так что следите за этим.

lbenedetto 24.10.2018 11:41

Для BottomAppBar необходимо использовать androidx.coordinatorlayout.widget.CoordinatorLayout. Любое решение для этого.

Akshay 13.11.2018 10:43

У меня была такая же проблема с androidx.constraintlayout.motion.MotionLayout. Переименование его в androidx.constraintlayout.motion.widget.MotionLayout скомпилировано и сработало для меня.

Taylor Venissat 13.11.2018 21:14

В моем случае: constraintlayout: 1.1.2 -> constraintlayout: 1.1.3.

Naveen Kumawat 02.02.2019 13:06

В AndroidStudio 3.3 RC2 я решил это путем обновления -

implementation 'androidx.constraintlayout:constraintlayout:1.1.2'

к

implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

в build.gradle (Модуль: приложение)

Примечание: Это решение также действительно для версии выпуска 3.3 (согласно нижеприведенному комментарию FireZenk), 3.5.2 (согласно нижеприведенному комментарию пользователя2350644)

Также действует для версии 3.3.

FireZenk 28.01.2019 14:19

Я столкнулся с этим исключением после обновления до последней версии Android Studio 3.5.2 и gradlePluginVersion 3.5.2. Ваше решение отлично работает, спасибо.

user2350644 05.11.2019 13:18

Поскольку Android Studio обновлена ​​до версии 3.3, она выдает эту ошибку. Я решил это, обновив версию для макета ограничений в build.gradle уровня приложения:

implementation 'androidx.constraintlayout:constraintlayout:1.1.2'

К

implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

Android Studio обновлена ​​до версии 3.3. Удалите ограничение предыдущей версии.

мой случай использовал это

implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3'

Спасибо

В моем случае мне просто нужно было обновить зависимости androidx до последней версии.

РЕДАКТИРОВАТЬ В build.gradle (app) вам нужно искать зависимости, которые содержат androidx. Студия Android покажет вам информацию о последних версиях этих зависимостей. Используя эту информацию, просто измените версию зависимости.

объясните пожалуйста, как это сделать

GabrieleMartini 01.02.2019 10:56

Что ж, в моем случае я пробовал Решение 1, который все еще не работал. Затем я использовал Решение 2 вместе с Решение 1.


Решение 1

Обновление текущей версии ConstraintLayout в файле build.gradle уровня приложения.

Из

implementation 'androidx.constraintlayout:constraintlayout:1.1.2'

В

implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

Решение 2

Сделайте недействительными кеши и перезапустите Android Studio (если все еще не работает после применения Решение 1).

FileInvalidate Caches / RestartInvalidate and Restart

Я использовал их оба, и он отлично работает для меня.

Note:Solution 1 is important.

Я тоже столкнулся с этой проблемой. Эта проблема возникает только для версия зависимости constraintlayout. Используйте версию 1.1.3 и надейтесь, что проблема будет решена:

implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

Есть два способа добавить ConstraintLayout:

implementation 'com.android.support.constraint:constraint-layout:2.0.0-alpha3'

тогда вам нужно использовать это так:

<android.support.constraint.ConstraintLayout
        ...>

</android.support.constraint.ConstraintLayout>

или используя androidx:

implementation 'androidx.constraintlayout:constraintlayout:2.0.0-alpha3'

тогда вам нужно использовать

<androidx.constraintlayout.widget.ConstraintLayout
        ...
        >

</androidx.constraintlayout.widget.ConstraintLayout>

Не смешивайте эти два.

Обновление библиотеки constrainlayout с 1.1.3 до 2.0.0-beta2 устранило проблему для меня.

fklappan 26.07.2019 17:53

Замечательный! Это был идеальный ответ, и он меня разобрал !!! Я использовал правильный синтаксис, как вы сказали !!!

Thanasis 09.12.2019 22:23

В Android Studio 3.4 мне пришлось перейти на

implementation 'androidx.constraintlayout:constraintlayout:1.1.2'

чтобы он снова заработал.

Как ни странно, это сработало, когда я обновил библиотеку androidx.appcompat:...' до

'androidx.appcompat:appcompat:1.1.0-alpha05' с версией компоновки ограничений 'androidx.constraintlayout:constraintlayout:1.1.3' на Android Studio 3.3

Я использую Android Studio 4.1 и эту библиотеку для макета ограничений:

implementation 'androidx.constraintlayout:constraintlayout:2.0.4'

который обновлен 09-ноя-20 и имел ту же ошибку с раздутием макета ограничения.

В моем случае на моем Samsung a40 приложение работало, но на моем ZTE nubia n1 приложение вылетало мгновенно. Я подумал, что проблема была в фоновом изображении моего макета, потому что мое png-изображение было слишком большим для старого устройства с другим разрешением экрана, чем у Samsung a40. Я импортировал фоновое изображение в формате png через проводник (рисование - щелкните правой кнопкой мыши - Показать в проводнике), и на самом деле проблема была.

Я пытался импортировать изображения с помощью Android Drawable Importer, но заметил, что этот плагин больше не работает в Android Studio.

РЕШЕНИЕ, СВЯЗАННОЕ С ИМПОРТЕРОМ ВЫДАВАЕМЫХ ПО Android:

Если вы уже установили Android Drawable Importer в Android Studio, удалите его, прежде чем начинать процесс восстановления. Чтобы восстановить Android Drawable Importer, вам понадобится ADI-hack-plugin, который вы можете получить, просмотрев это видео на YouTube от Томас Самул.

После восстановления Android Drawable Importer просто импортируйте с ним свое изображение, и все будет работать нормально.

То же самое и с изображением SVG. Я заменил android:background = "@drawable/bg_image" из ConstraintLayout на изображение SVG и получил это исключение.

CoolMind 19.12.2020 22:19

Да, самая большая проблема в том, что на некоторых устройствах все работает нормально, а на некоторых приложение вылетает. На эмуляторе не пробовал, но сбоев, думаю, не будет.

Dezo 19.12.2020 23:13

Согласен с тобой. Но у меня есть это исключение на эмуляторе с SVG.

CoolMind 20.12.2020 18:00

Я столкнулся с той же проблемой, ни одно из вышеперечисленных решений не помогло. На самом деле проблема была вызвана исключением с нулевым указателем, возникшим после того, как я переключился на тему NoActionBar, когда приложение использовало ActionBar для setTitle (). Связанный ответ на переполнение стека помог мне понять это

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