После миграции на AndroidX, ошибка надувания класса android.support.design.widget.AppBarLayout - PullRequest
0 голосов
/ 05 февраля 2019

После использования Android Studio для переноса моего проекта в AndroidX (и ручного исправления множества ошибок импорта) я не получаю ошибок компиляции, но при запуске приложения происходит сбой с:

Error inflating class android.support.design.widget.AppBarLayout.

Неправильная строка в файле макета: <android.support.design.widget.AppBarLayout

Мои зависимости в build.gradle:

dependencies {
    def lifecycle_version = '2.1.0-alpha02'
    // used below--will be different for androidx (migrated 2019-02-04)
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'androidx.appcompat:appcompat:1.1.0-alpha01'
    implementation 'androidx.legacy:legacy-support-v4:1.0.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

    implementation 'androidx.coordinatorlayout:coordinatorlayout:1.0.0'

    implementation 'com.google.android.material:material:1.1.0-alpha03'
    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'androidx.test:runner:1.1.2-alpha01'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.2-alpha01'
    implementation 'com.squareup.okhttp3:okhttp:3.11.0'
    implementation 'com.squareup.okio:okio:1.15.0'
    implementation 'io.reactivex.rxjava2:rxjava:2.2.5'
    implementation 'com.jakewharton.rxrelay2:rxrelay:2.1.0'
    // Relay class
    implementation 'com.jakewharton.rx2:replaying-share:2.1.0'
    // ReplayingShare
    implementation 'com.jakewharton.rxbinding2:rxbinding:2.2.0'
    // RxBinding
    implementation "androidx.lifecycle:lifecycle-extensions:$lifecycle_version"  // see def above
    // includes ViewModel and LiveData
    implementation 'org.apache.commons:commons-lang3:3.8.1'
    // for tuples like Triple
    implementation 'com.androidplot:androidplot-core:1.5.6'
    // AndroidPlot
}

Я предполагаю, что мне не хватаетчто-то, но я не могу найти, что это такое.

Ответы [ 4 ]

0 голосов
/ 29 июня 2019

Androidx надувает класс <android.support.design.widget.TabLayout/> не будет работать, он не существует, поэтому замените его на <com.google.android.material.tabs.TabLayout/>, он будет работать нормально и не забудьте добавить

внедрение 'com.google.android.material: material: 1.1.0-alpha07 '

в зависимости

0 голосов
/ 05 февраля 2019

Вам нужно использовать com.google.android.material.appbar.AppBarLayout.

Версия 1.0.0 уже вышла, поэтому вы можете использовать implementation 'androidx.appcompat:appcompat:1.0.0'

Добавить зависимость implementation 'com.google.android.material:material:1.0.0'

См. Интеграция компонентов материалов для последней версии выпуска.И используйте

<com.google.android.material.appbar.AppBarLayout
android:layout_width="match_parent"
android:layout_height="wrap_content">

</com.google.android.material.appbar.AppBarLayout>

. Другие артефакты и сопоставление классов см. В документе Документация по миграции AndroidX .

.
0 голосов
/ 05 февраля 2019

Пожалуйста, перейдите через этот старый к новым отображениям классов

например; - используйте com.google.android.material.appbar.AppBarLayout вместо android.support.design.widget.AppBarLayout

Для AppBarLayout

enter image description here

Для Панель инструментов

enter image description here

0 голосов
/ 05 февраля 2019

В соответствии с документацией по миграции AndroidX , замена androidx для AppBarLayout составляет com.google.android.material.appbar.AppBarLayout.Попробуйте вместо этого заменить тэг AppBarLayout этим.

Что касается того, почему компиляция / сборка работает, я предполагаю, что это как-то связано с Jetifier, но я не уверен.

...