Я переношу свои зависимости для теста Android P на зависимости androidx. По некоторым не очень понятным причинам мой проект больше не компилируется (и нет, я не буду предоставлять подробности, чтобы избежать явной проблемы). Я узнал (через gradlew dependencies), что привязка данных использует зависимость «старой школы» android.arch.lifecycle:runtime:1.0.3 вместо androidx.lifecycle:lifecycle-runtime:2.0.0-beta01. Думаю, это может быть одна из причин.
Есть идеи, как заставить использовать новые имена / зависимости пакетов?
@CommonsWare нет, я не использовал эти флаги. Однако установка этих флагов не меняет зависимости: /
@CommonsWare создание android.enableJetifier=true - не настоящее решение. Это увеличит время сборки. В худшем случае использование ОЗУ при каждой сборке будет огромным (я сам видел, как это использовало дополнительные 500 МБ). Вместо этого лучше вручную перенести каждую из ваших библиотек на androidx. Это также дает вам уверенность в своем коде.
У меня аналогичная проблема, библиотека Data Binding использует библиотеку поддержки, некоторые классы могут конфликтовать с AndroidX. А пока мне нужно удалить DataBinding.
Я только что прочитал этот Release Note, в нем говорилось, что эта проблема устранена, но я не заметил эффекта.
в примечании к выпуску говорится: «Библиотеки привязки данных не обновляются до androidx», я не уверен, как это понять: D
Я все еще сталкиваюсь с этой ошибкой с несколькими библиотеками поддержки, такими как android.support.v4.widget, не существует. Любое решение для этого?
@Swapnil Выложите, пожалуйста, свой код, я вместе с вами поищу решение.
Я попробовал это, пока у меня было слабое интернет-соединение, поэтому я пропустил обновление до Android Studio 3.2. Это была моя вина. С этим обновлением (разархивирование заняло почти час, не знаю почему) меня также попросили обновить мои инструменты сборки до com.android.tools.build:gradle:3.2.0-beta04 (или что-то еще, что является новейшей версией, соответствующей вашей версии Android Studio (я бы не стал устанавливать 3.3.0-alpha03) и обновил градиент обертка до 4.6.
Теперь зависимости исчезли, и я счастлив.
В моем случае ошибка возникла из-за того, что инструмент для перехода на AndroidX не работает должным образом. Были еще некоторые файлы макета, использующие некоторые старые библиотеки поддержки. После исправления этих файлов все прошло хорошо =)
Чтобы исправить каждую библиотеку поддержки, которая использовалась в этих файлах макета, я изменил на правую, следуя этой ссылке: https://developer.android.com/jetpack/androidx/migrate
Какие файлы XML были неправильными и как вы их исправляли? Ваш ответ будет более ценным, если вы предоставите информацию такого типа.
@GMB, это были файлы макета. Я только что отредактировал свой ответ, чтобы уточнить детали
И ваш, и @ Ахмад-Агазаде были ответом; нужно выследить эти ссылки !!
Проверьте файлы макета, возможно, остались просмотры, которые используют библиотеку поддержки вместо androidx Например
<android.support.constraint.ConstraintLayout
android:layout_width = "match_parent"
android:layout_height = "match_parent">
измените это на
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width = "match_parent"
android:layout_height = "match_parent">
Включение AndroidX в gradle.properties устранило эту проблему для меня:
android.useAndroidX=true
android.enableJetifier=true
См. https://developer.android.com/jetpack/androidx#using_androidx:
android.useAndroidX: When set to true, the Android plugin uses the appropriate AndroidX library instead of a Support Library. The flag is false by default if it is not specified.android.enableJetifier: When set to true, the Android plugin automatically migrates existing third-party libraries to use AndroidX by rewriting their binaries. The flag is false by default if it is not specified.
1- Добавьте эту строку в build.gradle
android {
dataBinding {
enabled = true
}
}
2- gradle.properties (Свойства проекта)
android.databinding.enableV2=true
Читатели, имейте в виду, что начиная с версии Android Studio 3.2.0 и новее этот ответ больше не применяется. Последние инструкции по установке см. На странице «Начало работы» на сайте разработчика Android: developer.android.com/topic/libraries/data-binding/start.
У вас есть
android.enableJetifier=trueиandroid.useAndroidX=trueвgradle.properties?