Ответ 1
Просто измените "rc01" в первой и последней строке внутри зависимостей на "alpha1". Это работает для меня
У меня следующий сорт
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
implementation 'com.google.android.material:material:1.0.0-rc01'
}
Но когда я хочу создать приложение, я получаю следующий журнал:
Manifest merger failed : Attribute [email protected] value=(android.support.v4.app.CoreComponentFactory) from [com.android.support:support-compat:28.0.0-alpha3] AndroidManifest.xml:22:18-91
is also present at [androidx.core:core:1.0.0-alpha3] AndroidManifest.xml:22:18-86 value=(androidx.core.app.CoreComponentFactory).
Suggestion: add 'tools:replace="android:appComponentFactory"' to <application> element at AndroidManifest.xml:5:5-19:19 to override.
Окей! Идите к манифесту и сделайте это:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
package="ru.chopcode.myapplication">
<application
tools:replace="android:appComponentFactory"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
</application>
</manifest>
Затем я получаю эту ошибку в своем Logcat:
Manifest merger failed with multiple errors, see logs that I have Linked with it
Просто измените "rc01" в первой и последней строке внутри зависимостей на "alpha1". Это работает для меня
У меня была похожая проблема. Добавлены две строки в файле gradle.properties
:
android.useAndroidX=true
android.enableJetifier=true
Эти две строки автоматически разрешили мои конфликты зависимостей между файлами Google и сторонними зависимостями. Здесь ссылка для следования: https://developer.android.com/topic/libraries/support-library/androidx-overview#new-project
Я столкнулся с той же ошибкой при попытке добавить библиотеку Kotlin-KTX в мой проект.
Я пытаюсь перейти на AndroidX, и проблема исправлена!
Вы используете библиотеку материалов, которая является частью AndroidX. Если вы не знаете AndroidX, просмотрите этот ответ.
Одно приложение должно использовать либо AndroidX, либо старые библиотеки поддержки Android. Вот почему вы столкнулись с этой проблемой.
Например -
В вашем gradle вы используете
com.android.support:appcompat-v7
(часть старой поддержки --Android Library--)com.google.android.material:material
(часть AndroidX) (сборка AndroidX для com.android.support:design
)Таким образом, решение заключается в использовании AndroidX или старой библиотеки поддержки. Я рекомендую использовать AndroidX, потому что Android не будет обновлять библиотеки поддержки после версии 28.0.0. Смотрите примечания к выпуску библиотеки поддержки.
Просто перейдите на AndroidX. Вот мой подробный ответ для перехода на AndroidX. Я ставлю здесь необходимые шаги из этого ответа.
Перед миграцией настоятельно рекомендуется сделать резервную копию вашего проекта.
Существующий проект
Новый проект
Поместите эти флаги в свой gradle.properties
android.enableJetifier=true
android.useAndroidX=true
Проверьте соответствие @Library для одинакового пакета AndroidX.
Проверьте @Официальную страницу миграции на AndroidX
В моем случае это работает отлично.. Я добавил ниже двух строк кода внутри файла манифеста
tools:replace="android:appComponentFactory"
android:appComponentFactory="whateverString"
Кредит идет на этот ответ.
в gradle.properties
просто добавьте два сценария ниже
android.useAndroidX=true
android.enableJetifier=true
В чем причина ↓
Все пакеты в AndroidX живут в согласованном пространстве имен, начиная со строки androidx. Пакеты библиотеки поддержки были сопоставлены с соответствующими пакетами androidx. *. Полное сопоставление всех старых классов и артефактов сборки с новыми см. на странице "Рефакторинг пакетов".
Пожалуйста, смотрите страницу рефакторинга пакета
Начиная с Android P, библиотеки поддержки были перенесены в AndroidX
Пожалуйста, сделайте рефакторинг для своих библиотек с этой страницы.
https://developer.android.com/topic/libraries/support-library/refactor
Просто удалите зависимость от android.support
implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
Цитата из руководства по материалам
Если вы не хотите переключаться на новые пакеты androidx и com.google.android.material, вы можете использовать материальные компоненты через зависимость com.android.support:design:28.0.0-alpha3.
Примечание. Вы не должны одновременно использовать com.android.support и com.google.android.dependencies в своем приложении.
Просто удаление этой зависимости отлично работает
implementation 'com.android.support:appcompat-v7:28.0.0-rc01'
Ниже приведен пример полной зависимости
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.google.android.material:material:1.0.0-beta01'
implementation 'com.android.support.constraint:constraint-layout:1.1.2'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
просто добавьте эти две строки кода в свой файл манифеста
tools:replace="android:appComponentFactory"
android:appComponentFactory="whateverString"
Следуй этим шагам:
Наконец-то нашел быстрое и простое решение, добавив две строки в файл android/build.gradle
.
googlePlayServicesVersion = "16.+"
firebaseVersion = "17.6.0"
Пожалуйста, следуйте этому на 100% правильно.
Только если вы не хотите использовать AndroidX
Так что в моем случае я использую библиотеку, которая использовала androidx, но я не использую androidx, поэтому, когда я понизил версию этой библиотеки, проблема была решена.
В моем случае:
implementation 'com.github.turing-tech:MaterialScrollBar:13.+'
вышеупомянутая библиотека создает проблему 13. + автоматически получит новую версию библиотеки, которая использует androidx. Поэтому я понизил версию библиотеки до:
implementation 'com.github.turing-tech:MaterialScrollBar:13.2.5'
И проблема была решена.
Перейдите на Refactor-> Миграция-> Миграция на Android X.
Пожалуйста, добавьте это в ваш файл gradle.properties: android.enableJetifier = верно android.useAndroidX = истина
И выполнить синхронизацию.
Эта проблема в основном произошла для старых зависимостей.
Там есть 2 решения:
Первый:
Обновите все old dependencies
и ClassPath из файлов Project level gradle
.
classpath 'com.android.tools.build:gradle:3.3.1'
classpath 'com.google.gms:google-services:4.2.0'
Второй:
Ваш проект Migrate to AndroidX
Из меню Android Studio → Refanctor → Migrate to AndroidX
Спасибо, дайте мне знать, если кто-нибудь поможет от этого ответа.
1.Добавьте эти коды в конце вашего app/build.gradle:
configurations.all {
resolutionStrategy.force 'com.android.support:support-v4:28.0.0'
// the above lib may be old dependencies version
}
2. Модифицированная версия SDK и инструментов до 28:
compileSdkVersion 28
buildToolsVersion '28.0.3'
targetSdkVersion 28
3.В своем файле AndroidManifest.xml вы должны добавить две строки:
<application
android:name=".YourApplication"
android:appComponentFactory="AnyStrings"
tools:replace="android:appComponentFactory"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:largeHeap="true"
android:theme="@style/Theme.AppCompat.Light.NoActionBar">
Или просто
Все, что я сделал, это перешел в опцию "Refactor" в верхнем меню.
Затем выберите "Переход на AndroidX"
Принять, чтобы сохранить проект в виде zip файла.
Пожалуйста, обновите Android Studio, а также Gradle, чтобы не возникало проблем.
Все дело в совместимости версий библиотек
Я столкнулся с этой странной ошибкой пару 2 часов. Я решил эту ошибку, выполнив следующие действия
передать ваши зависимости build.gradle в
implementation 'com.google.android.gms:play-services-maps:17.0.0'
в
implementation 'com.google.android.gms:play-services-maps:15.0.0'
Перейдите на AndroidX, если это существующий проект. Если это новый проект, добавьте эти два флага в Gradle.propeties
android.enableJetifier=true
android.useAndroidX=true
для более подробных шагов https://developer.android.com/jetpack/androidx или проверьте это Что такое AndroidX
Посмотрите это изображение и добавьте эту строку в свой AndroidManifest.xml Android
tools:replace="android:appComponentFactory"
android:appComponentFactory="whateverString"
Создайте новый проект и сравните файлы build.gradle и замените все
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.1'
и другие зависимости, аналогичные тем, которые были в новом проекте, подобном этому
implementation 'androidx.appcompat:appcompat:1.0.0-alpha3'
implementation 'androidx.constraintlayout:constraintlayout:1.1.2'
implementation 'androidx.lifecycle:lifecycle-extensions:2.0.0-alpha1'
androidTestImplementation 'androidx.test:runner:1.1.0-alpha3'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.0-alpha3'
implementation 'androidx.core:core-ktx:1.0.0-alpha3'
А затем фиксированный импорт для использования androidx в файлах kotlin.
Добавьте эти строки внутрь файла AndroidManifest.xml.
tools:replace="android:appComponentFactory"
android:appComponentFactory="whateverString"
У меня была такая же проблема в течение трех дней.
Как будто Android хочет, чтобы мы использовали Kotlin или AndroidX, они покончили с Android.
Но так я это решил.
NB. Вы должны использовать последние версии библиотек (файл build.grudle) в последней стабильной версии Android Studio 3.4.1.
Если вы не собираетесь переходить на AndroidX, выполните следующие действия.
Обязательно добавьте эту строку в тег манифеста
xmlns:tools="https://schemas.android.com/tools"
Затем добавьте инструменты, которые вы замените в студии Android.
я переключился (реализация 'com.android.support:appcompat-v7:28.0.0') на v7: 28.0.0, это работает для меня.
У меня была такая же ошибка при работе с Groupie (реализация 'com.xwray: groupie: 2.3.0')
Я решил это, изменив версию на (реализация 'com.xwray: groupie: 2.1.0')
В моём случае я не хотел переходить на androidX. И я должен проверить мои последние изменения. Я понял, что новый компонент был → lottie 2.8.0, поэтому я понизил его до: реализация 'com.airbnb.android:lottie:2.7.0'
Я надеюсь, что это может кому-то помочь.
Измените proguardFile в build.gradle(Module: app) на следующий
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
вместо
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
Это сработало для меня
Для решения этой проблемы я бы рекомендовал явно android/build.gradle
версию переменных ext в android/build.gradle
в вашем корневом проекте.
ext {
googlePlayServicesVersion = "16.1.0" // default: "+"
firebaseVersion = "15.0.2" // default: "+"
// Other settings
compileSdkVersion = <Your compile SDK version> // default: 23
buildToolsVersion = "<Your build tools version>" // default: "23.0.1"
targetSdkVersion = <Your target SDK version> // default: 23
supportLibVersion = "<Your support lib version>" // default: 23.1.1
}
ссылка https://github.com/zo0r/react-native-push-notification/issues/1109#issuecomment-506414941