play-services-ads: 18.0.0 и appcompat-v7: 28.0.0 - сбой слияния и зависимости с использованием groupid com.android.support и androidx. * не могут быть объединены - PullRequest
0 голосов
/ 11 июля 2019

У меня есть ранняя версия игрового сервиса, и все было в порядке. Теперь я обновляю его до 18.0.0 и имею много ошибок:

Ошибка слияния манифеста: Атрибут 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 значение = (androidx.core.app.CoreComponentFactory). Предложение: добавить 'tools: replace = "android: appComponentFactory"' к элементу на AndroidManifest.xml: 8: 5-35: 15 для переопределения.

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

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    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.anjlab.android.iab.v3:library:1.0.44'
    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.gms:play-services-ads:18.0.0'
}

configurations.all {
    resolutionStrategy.eachDependency {  details ->
        def requested = details.requested
        if (requested.group == 'com.android.support') {
            if (!requested.name.startsWith("multidex")) {
                details.useVersion "28.0.0"
            }
        }
    }
}

implementation 'com.android.support:appcompat-v7:28.0.0' подчеркнут красным, говоря, что зависимости, использующие groupid com.android.support и androidx. * Не могут быть объединены.

есть идеи, как решить эту ошибку?

1 Ответ

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

Эта проблема возникает из-за того, что последние версии com.google.android.gms:play-services-ads (в данном случае v18.0.0) уже используют AndroidX, но ваше приложение все еще использует поддержку Android.

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

  • Downgrade com.google.android.gms:play-services-ads

Если вы понижаете версию этой библиотеки, эту проблему следует исправить, поскольку старые версии все еще использовали библиотеку поддержки (а не AndroidX).

Вы можете попробовать, например:

com.google.android.gms:play-services-ads:17.2.0

ЗДЕСЬ вы можете найти список выпущенных версий

  • Вы должны рассмотреть вопрос о переносе вашего приложенияв AndroidX.

Библиотека поддержки устарела.Так что рано или поздно вам придется перейти на AndroidX.Если это сделать, таких ошибок не будет.

...