leandroBorgesFerreira / LoadingButtonAndroid Ошибка реализации - PullRequest
0 голосов
/ 10 июля 2019

Я пытаюсь использовать этот стиль кнопки эту ссылку Но у меня была ошибка реализации, мой build.gradle вот так:

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

dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.google.firebase:firebase-core:16.0.7'
implementation 'com.google.firebase:firebase-auth:16.1.0'
implementation 'com.google.firebase:firebase-database:16.1.0'
implementation 'com.google.firebase:firebase-storage:16.1.0'
implementation 'com.google.android.gms:play-services-auth:16.0.1'
implementation 'com.google.code.gson:gson:2.8.5'
implementation 'com.android.volley:volley:1.1.1'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test?1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

И ошибка:

ERROR: Manifest merger failed : Attribute application@appComponentFactory value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0] AndroidManifest.xml:22:18-91
is also present at [androidx.core:core:1.0.1] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to element at AndroidManifest.xml:5:5-19:19 to override.

Как я могу это исправить?

1 Ответ

1 голос
/ 10 июля 2019

Полагаю, эта ошибка возникает из-за того, что в их последней версии используется AndroidX, но ваше приложение все еще использует библиотеку поддержки.

Итак, я думаю, есть две возможности:

  • Понижениеверсия библиотеки

Проверяя историю их выпусков, кажется, что AndroidX был представлен в версии v2.0.0.Итак, используйте старую версию: v.1.14.0.Просто используйте implementation 'br.com.simplepass:loading-button-android:1.14.0'

  • Перенос на AndroidX.

Вы также можете подумать о переходе на Android X, поскольку библиотека поддержки Android в настоящее время устарела.В любом случае вы можете проверить первое решение, чтобы убедиться, что проблема действительно вызвана конфликтом AndroidSupport / AndroidX

Редактировать

Просто поделитесь дополнительной информацией, поскольку выне знают об AndroidX.

При разработке приложения для Android вы, вероятно, захотите создать один APK, который работает в разных версиях Android.Однако, как вы можете себе представить, есть некоторые различия между различными версиями Android, такими как методы, которые больше не используются (устарели) или были добавлены позже и т. Д. Функции, которые существуют в версии, но отсутствуют в других и т. Д. По этой причине вы будетев конечном итоге с помощью библиотеки поддержки Android.Это специальная библиотека, которая помогает вам поддерживать несколько версий Android.Мало того, но некоторые представления, такие как ConstraintLayout, RecyclerView и CardView, были выпущены как библиотека ... как часть библиотеки поддержки Android.

В вашей сборке сборки мы можем видеть, чтовы уже используете библиотеку поддержки Android:

implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
implementation 'com.android.support:design:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'

Однако в прошлом году Android устарела в библиотеке поддержки и создала AndroidX.В определенном смысле это одно и то же .. Просто другое имя ..

Рано или поздно вы перенесете свое приложение на Android X, поскольку библиотека поддержки больше не будет обновляться.

Однако не только ваше приложение перейдет на AndroidX, но и некоторые сторонние библиотеки перейдут на AndroidX.В этом случае у нас есть библиотека LoadingButtonAndroid, которая начала использовать Android X в версии v.2.0.0.Тем не менее, поскольку вы еще не перенесли свое приложение, у вас есть такой конфликт.Таким образом, вы исправляете, используя старую версию LoadingButtonAndroid или перенося ваше приложение на AndroidX.

ЗДЕСЬ вы можете найти, как перенести ваше приложение на AndroidX.Обычно это очень простой процесс.Тем не менее, Android Studio всегда забывает изменить какой-либо импорт, и вы должны вручную переключиться с библиотеки поддержки на AndroidX.

Автоматический или ручной переход на AndroidX означает, что вам нужно обновить импорт с android.support.v7.app.AppCompatActivity до androidx.appcompat.app.AppCompatActivity

Как видите, имя класса такое же, и кода нетизменения ... Все представления одинаковы. Просто их пакет (импорт) отличается.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...