Ошибка слияния манифеста: Атрибут application @ appComponentFactory обновляет библиотеки Firebase - PullRequest
5 голосов
/ 19 июня 2019

Я пытаюсь добавить firebase в свой проект, но когда я реализую 'com.google.firebase:firebase-messaging:19.0.0' и 'com.google.firebase:firebase-core:17.0.0'.

build.gradle (здесь ошибка)

apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'

android {
 compileSdkVersion 28
 defaultConfig {
    applicationId "com.example.user.mikripoli"
    minSdkVersion 15
    targetSdkVersion 28
    multiDexEnabled true
    versionCode 1
    versionName "1.0"
    testInstrumentationRunner 
 "android.support.test.runner.AndroidJUnitRunner"
 }
 buildTypes {
    release {
        minifyEnabled false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 
 'proguard-rules.pro'
    }
 }

 dexOptions {
    javaMaxHeapSize "2g"
 }
}

dependencies {
 implementation 'com.roughike:bottom-bar:2.0'
 implementation 'com.android.support:support-v4:28.0.0'
 implementation 'com.android.support:exifinterface:28.0.0'
 implementation 'com.android.support:animated-vector-drawable:28.0.0'
 implementation 'com.flaviofaria:kenburnsview:1.0.7'
 implementation fileTree(include: ['*.jar'], dir: 'libs')
 implementation 'com.android.support:appcompat-v7:28.0.0'
 implementation 'com.android.support.constraint:constraint-layout:1.1.3'
 implementation 'com.android.support:design:28.0.0'
 implementation 'com.github.chrisbanes:PhotoView:2.1.4'
 implementation 'com.google.firebase:firebase-messaging:19.0.0'
 implementation 'com.google.firebase:firebase-core:17.0.0'
 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.android.support:recyclerview-v7:28.0.0'
 implementation 'com.android.support:cardview-v7:28.0.0'
 implementation "com.google.android.gms:play-services-location:17.0.0"
 implementation 'com.google.android.gms:play-services-maps:17.0.0'
 implementation 'com.google.android.gms:play-services-base:17.0.0'
 implementation 'com.github.ahmedshaban1:EasySlider:1.0.0'
 implementation 'com.liangfeizc:SlidePageIndicator:1.1.0@aar'
 implementation 'me.relex:circleindicator:1.2.2@aar'
 implementation 'com.github.bumptech.glide:glide:4.8.0'
 annotationProcessor 'com.github.bumptech.glide:compiler:4.8.0'

}

другой файл Gradle:

buildscript {

 repositories {
    google()
    jcenter()
 }
 dependencies {
    classpath 'com.android.tools.build:gradle:3.4.1'
    classpath 'com.google.gms:google-services:4.2.0'


    // NOTE: Do not place your application dependencies here; they belong
    // in the individual module build.gradle files
  }
 }

  allprojects {
    repositories {
     google()
     mavenCentral()
     jcenter()
     maven {
        url "https://maven.google.com"
        }
     maven { url "https://jitpack.io" }
   }
  }

  task clean(type: Delete) {
   delete rootProject.buildDir
  }

Ошибка, которая показывает о com.android.support:support-v4:28.0.0:

Зависимости с использованием groupId com.android.support и androidx. * Canне объединяются, но найдены IdeMavenCoordinates {myGroupId = 'com.android.support', myArtifactId = 'cardview-v7', myVersion = '28 .0.0 ', myPacking =' aar ', myClassifier =' null '} и IdeMavenCoordinates {myGroupId ='androidx.coordinatorlayout', myArtifactId ='ordinatorlayout ', myVersion =' 1.0.0 ', myPacking =' aar ', myClassifier =' null '} несовместимые зависимости

Информация для проверки: Существуют некоторые комбинации библиотек,или инструменты и библиотеки, которые несовместимы или могут привести к ошибкам.Одной из таких несовместимостей является компиляция с версией библиотек поддержки Android, которая не является последней версией (или, в частности, версия ниже, чем ваша targetSdkVersion).

Также , когда япостроить apk, он показывает эту ошибку:

Ошибка слияния манифеста: Атрибут application @ appComponentFactory value = (android.support.v4.app.CoreComponentFactory) из [com.android.support:support-compat:28.0.0] AndroidManifest.xml: 22: 18-91 также присутствует в [androidx.core: core: 1.0.0] AndroidManifest.xml: 22: 18-86 value = (androidx.core.app.CoreComponentFactory).Предложение: добавить 'tools: replace = "android: appComponentFactory"' к элементу на AndroidManifest.xml: 13: 5-354: 19, чтобы переопределить.

добавление инструментов: replace = "android: appComponentFactory" неработать хотя

Ответы [ 5 ]

6 голосов
/ 19 июня 2019

В новом выпуске библиотеки переносятся из библиотек поддержки Android в библиотеки Jetpack (AndroidX).

Обновленные библиотеки не будут работать, если вы не внесете следующие изменения в свое приложение:

  • Обновите com.android.tools.build:gradle до версии 3.2.1 или новее.

  • Обновите compileSdkVersion до 28 илипозже.

  • Обновите ваше приложение для использования Jetpack (AndroidX);следуйте инструкциям в Миграция на AndroidX .

Метод 1:

добавьте эти два в свойФайл gradle.properties, ничего не обновляя

android.useAndroidX=true
android.enableJetifier=true

Method-2

, если Method-1 не решит вашу проблему, сделайте одно, если вы используете AndroidStudio версии 3.2 или выше перейдите на Refactor> Migrate to AndroidX ...

2 голосов
/ 19 июня 2019

Либо понизьте эти Firebase зависимости - либо перенесите в androidx.

Jetifier довольно бесполезен, поскольку имеет контроль над собственными зависимостями.

1 голос
/ 27 июня 2019

Согласно сайту firebase для решения этой проблемы:

  • Обновите ваше приложение для использования Jetpack (AndroidX), вы можете сделать это, добавив следующие две строки: android.useAndroidX=true и android.enableJetifier=true в файл gradle.properties в корневом каталоге проекта.Или вы можете сделать другой метод
  • Обновить com.android.tools.build:gradle до v3.2.1 или новее (в файле проекта build.gradle)
  • Обновить compileSdkVersion до 28 или новее(в проекте build.gradle файл)
1 голос
/ 19 июня 2019

Вы используете как библиотеки поддержки, так и библиотеки androidx, и вы не можете этого сделать.

Cloud Messaging версия 19.0.0 выпущена в июне. Ознакомьтесь с официальными примечаниями к выпуску библиотек Firebase:

Данный выпуск является обновлением версии MAJOR и содержит критические изменения. В этом выпуске библиотеки переносятся из библиотек поддержки Android в библиотеки Jetpack (AndroidX). Обновленные библиотеки не будут работать, если вы не внесете в свое приложение следующие изменения:

  • Обновить com.android.tools.build:gradle до v3.2.1 или более поздней версии.
  • Обновление compileSdkVersion до 28 или более поздней версии.
  • Обновите ваше приложение для использования Jetpack (AndroidX); следуйте инструкциям в Миграция на AndroidX .
0 голосов
/ 19 июня 2019

Попробуйте и синхронизируйте ваш проект, если это может вам помочь

implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:support-v4:28.0.0'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...