按照 Mapbox 初学者教程返回"Manifest merger failed"错误



我已经开始了一个新项目,我唯一添加的是对Mapbox SDK的依赖。当我构建项目时,它会产生以下输出:

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.0] 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.

这是我的build.gradle文件:

apply plugin: 'com.android.application'
android {
compileSdkVersion 28
defaultConfig {
applicationId "com.example.xxxx.xxxxxx"
minSdkVersion 19
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
repositories {
mavenCentral()
}
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'
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.mapbox.mapboxsdk:mapbox-android-sdk:9.1.0'
}

这是我的清单:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.xxx.xxxxxxx">
<application
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">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>

我没有在这个项目中添加任何其他内容,并且严格遵循了Mapbox教程。我不明白为什么会发生这种事。我对Gradle不是很熟悉,所以如果这是一个明显的问题,我很抱歉:(

我认为这次合并失败可能是因为Android版的Mapbox Maps SDK正在使用AndroidX,而您仍在使用AppCompat(support:appcompat等(依赖关系。

将您的项目转换为AndroidX?https://developer.android.com/jetpack/androidx/migrate

和/或至少看看当您在gradle.properties文件中添加两个与AndroidX相关的标志时会发生什么?:https://developer.android.com/jetpack/androidx/migrate#migrate_an_existing_project_using_android_studio

相关内容

  • 没有找到相关文章