Я только что перешел на androidx через пункт меню Android Studio Рефакторинг -> Рефакторинг до AndroidX
Я получаю следующую ошибку:
android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class androidx.constraintlayout.ConstraintLayout
Любая идея?
Трассировки стека:
2018-10-19 00:25:58.128 28131-28131/com.midounoo.midounoo E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.midounoo.midounoo, PID: 28131
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.midounoo.midounoo/com.midounoo.midounoo.Base.MainActivity}: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class androidx.constraintlayout.ConstraintLayout
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2724)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2789)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6255)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:924)
Caused by: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class androidx.constraintlayout.ConstraintLayout
Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class androidx.constraintlayout.ConstraintLayout
Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.constraintlayout.ConstraintLayout" on path: DexPathList[[zip file "/data/app/com.midounoo.midounoo-2/base.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_dependencies_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_0_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_1_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_2_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_3_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_4_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_5_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_6_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_7_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_8_apk.apk", zip file "/data/app/com.midounoo.midounoo-2/split_lib_slice_9_apk.apk"],nativeLibraryDirectories=[/data/app/com.midounoo.midounoo-2/lib/arm64, /system/lib64, /vendor/lib64, /system/vendor/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
at android.view.LayoutInflater.createView(LayoutInflater.java:609)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:787)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:727)
at android.view.LayoutInflater.inflate(LayoutInflater.java:495)
at android.view.LayoutInflater.inflate(LayoutInflater.java:426)
at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at com.midounoo.midounoo.Base.MainActivity.onCreate(MainActivity.java:43)
at android.app.Activity.performCreate(Activity.java:6666)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2677)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2789)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1527)
at android.os.Handler.dispatchMessage(Handler.java:110)
at android.os.Looper.loop(Looper.java:203)
at android.app.ActivityThread.main(ActivityThread.java:6255)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1063)
Пожалуйста, поделитесь своим градиентом сборки на уровне приложения, чтобы мы могли видеть зависимости.
Добавьте androidx.constraintlayout.widget.ConstraintLayout в зависимости:
dependencies {
// https://mvnrepository.com/artifact/androidx.constraintlayout/constraintlayout
implementation "androidx.constraintlayout:constraintlayout:1.1.3"
}
Он доступен на mavenCentral().
Однако второй constraintlayout не запускается с верхнего регистра C. Правильный: 'androidx.constraintlayout:constraintlayout:1.1.3'
Ты спас меня от небольшой головной боли
Мне пришлось отдать приоритет mavenCentral, очень странно, что мой ide еще не справился с этим за меня.
Почему это происходит в Android Studio? Поменял с 1.1.2 на 1.1.3. Спасибо.
@BollMose - не знаю почему, но 1.1.2 просто задыхается. Вероятно, какая-то программа совместимости, которую упустили хорошие люди в Google. Они часто этим занимаются; добро пожаловать в программирование под Android!
Для меня это должен быть единственно приемлемый ответ. Есть ошибка, состоящая из 1.1.2, 1.1.3, исправьте эту проблему.
да, похоже, проблема с 1.1.2. обновление до 1.1.3 исправило это и для меня. Благодарность!
yepp. mavenCentral () и правильные зависимости решают мои проблемы
Я решил свою проблему, изменив все вхождения
androidx.constraintlayout.ConstraintLayout
к
androidx.constraintlayout.widget.ConstraintLayout
Да, ошибка в преобразованиях студии Android, должна изменить все вхождения в макете xml с помощью androidx.constraintlayout.widget.ConstraintLayout ... спасибо
Я создал новый проект с библиотекой поддержки androidx, и у меня уже есть androidx.constraintlayout.widget.ConstraintLayout в моем основном действии, но я все еще получаю ту же ошибку.
@Kanchan Если вы работаете в многомодульном проекте, проверьте, нужно ли вам обновить путь ConstraintLayout в любом.
Если после добавления mavenCentral () в качестве репозитория в вашем файле Gradle и изменения androidx.constraintlayout.ConstraintLayout на androidx.constraintlayout.widget.ConstraintLayout ваша проблема не решена, попробуйте выполнить Сделать кеш недействительным и перезапустить из меню файла. У меня это сработало.
build.gradle => проверить версию зависимостей
implementation 'androidx.constraintlayout:constraintlayout:1.1.1'
изменить
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
решил проблему
Он отформатирован нормально, и этот ответ сработал для меня. Спасибо.
пришла из 1.1.2. обновление до 1.1.3 исправило это и для меня. Благодарность!
У меня была аналогичная ошибка.
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.myapp/com.myapp.MainActivity}: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class androidx.constraintlayout.widget.ConstraintLayout
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2757)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2818)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1557)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:163)
at android.app.ActivityThread.main(ActivityThread.java:6393)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:933)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
Caused by: android.view.InflateException: Binary XML file line #2: Binary XML file line #2: Error inflating class androidx.constraintlayout.widget.ConstraintLayout
Caused by: android.view.InflateException: Binary XML file line #2: Error inflating class androidx.constraintlayout.widget.ConstraintLayout
Caused by: java.lang.reflect.InvocationTargetException
at java.lang.reflect.Constructor.newInstance0(Native Method)
at java.lang.reflect.Constructor.newInstance(Constructor.java:430)
at android.view.LayoutInflater.createView(LayoutInflater.java:652)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:812)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:752)
at android.view.LayoutInflater.inflate(LayoutInflater.java:499)
at android.view.LayoutInflater.inflate(LayoutInflater.java:430)
at android.view.LayoutInflater.inflate(LayoutInflater.java:377)
at androidx.appcompat.app.AppCompatDelegateImpl.setContentView(AppCompatDelegateImpl.java:469)
at androidx.appcompat.app.AppCompatActivity.setContentView(AppCompatActivity.java:140)
at com.myapp.MainActivity.onCreate(MainActivity.java:23)
at android.app.Activity.performCreate(Activity.java:6858)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2710)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2818)
at android.app.ActivityThread.-wrap12(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1557)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:163)
at android.app.ActivityThread.main(ActivityThread.java:6393)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:933)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:823)
Caused by: java.lang.NoClassDefFoundError: Failed resolution of: Landroidx/constraintlayout/widget/R$styleable;
at androidx.constraintlayout.widget.ConstraintLayout.init(ConstraintLayout.java:590)
at androidx.constraintlayout.widget.ConstraintLayout.<init>(ConstraintLayout.java:567)
... 23 more
Caused by: java.lang.ClassNotFoundException: Didn't find class "androidx.constraintlayout.widget.R$styleable" on path: DexPathList[[zip file "/data/app/com.myapp-1/base.apk"],nativeLibraryDirectories=[/data/app/com.myapp-1/lib/arm64, /system/lib64, /vendor/lib64]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
... 25
Следуя рекомендациям:
add androidx.constraintlayout.ConstraintLayout to the dependencies:
dependencies {
implementation "androidx.constraintlayout:constraintlayout:1.1.3"
}
И репозиторий mavenCentral ().
Работает для меня. Я смог скомпилировать APK.
Я обновил зависимость, но это не устранило ошибку. Затем я сделал чистый проект и построил, и теперь он работает.
У меня такая же проблема после:
Еще я использую:
implementation "uk.co.chrisjenx:calligraphy:2.3.0"
Я пробовал все сообщения из этого вопроса, но безуспешно.
Я исправляю это, добавляя одну строку .disableCustomViewInflation() в Calligraphy init:
@Override
public void onCreate() {
super.onCreate();
// ...
CalligraphyConfig.initDefault(new CalligraphyConfig.Builder()
.setDefaultFontPath("fonts/Sans-Regular.ttf")
.setFontAttrId(R.attr.fontPath)
.disableCustomViewInflation() // <----- this fix
.build());
// ...
}
Я надеюсь, что в следующем выпуске Каллиграфии (Кристофер Дженкинс благодарит за вашу отличную работу) это тоже будет исправлено.
Я даже не использовал его в своем проекте, но библиотека была там в Gradle. После удаления приложение начало работать как положено. Спасибо
этот сработал для меня безупречно. Я на андроид студии 4 канарейка 15
После нажатия на Refactor -> Migrate to AndroidX убедитесь, что все ваши зависимости в build.gradle (Module: app) отмечены как новейшая версия.
В противном случае зависимость будет отображаться желтым цветом, и вы можете изменить ее, наведя на нее указатель мыши.
Во-вторых, Измените тег ConstraintLayout во всех файлах макета XML на
androidx.constraintlayout.widget.ConstraintLayout
Для более безопасного варианта очистите свой проект и снова синхронизируйте его после описанных выше шагов.
Я скопировал и вставил существующий тег ConstraintLayout из xml, который вызывал у меня проблему. Простое удаление и повторное добавление тегов ConstraintLayout в AndroidStudio с нуля устранило проблему для меня.
У меня была такая же проблема, я решил ее следующим образом:
В ваших иждивенцах, если вы добавили
implementation 'androidx.constraintlayout:constraintlayout:1.x.x', что правильно
но в вашем файле макета xml вы должны использовать виджет как
androidx.constraintlayout.widget.ConstraintLayout
Я имею в виду найти отображение и использовать его во всем проекте.
убедитесь, что ваш проект полностью перешел на androidx. В моем случае я обнаружил:
<android.support.constraint.ConstraintLayout
вместо того
<androidx.constraintlayout.widget.ConstraintLayout
Так что измените его, и моя проблема решена!
Обязательно измените на
<androidx.constraintlayout.widget.ConstraintLayout
вместо того
<android.support.constraint.ConstraintLayout
а также
<androidx.constraintlayout.widget.Barrier
вместо того
<android.support.constraint.Barrier
Убедитесь, что вы добавили зависимость для макета ограничения
dependencies {
implementation "androidx.constraintlayout:constraintlayout:1.1.3"
}
и внесли изменения в
<androidx.constraintlayout.widget.ConstraintLayout instead of
<android.support.constraint.ConstraintLayout
У меня была эта проблема с Android Studio 4.0. Пару дней без проблем пользовался android studio 4.0. Казалось бы, ниоткуда перестало работать дизайнерское представление. Я мог только исправить это, удалив студию Android и установив новейшую версию студии Android.
измените свою зависимость constraintlayout на реализацию 'androidx.constraintlayout: constraintlayout: 2.0.2'
Поскольку моя реализация уже была androidx.constraintlayout.ConstraintLayout, простое использование чистого проекта решило мою проблему.
Покажите, пожалуйста, всю трассировку стека.