添加依赖项 com.google.android.material 后 Android 清单合并失败

2024-03-25

我们希望使用 Google 提供的最新材料设计 UI 元素。因此我添加了com.google.android.material:material:1.0.0-beta01在我们的项目 gradle 文件中。但从那时起我收到以下错误。

清单合并失败:来自 [androidx.core:core:1.0.0-beta01] AndroidManifest.xml:22:18-86 的属性 application@appComponentFactory value=(androidx.core.app.CoreComponentFactory) 也存在于 [com.android.support:support-compat:28.0.0-beta01] AndroidManifest.xml:22:18-91 value=(android.support.v4.app.CoreComponentFactory)。 建议:将 'tools:replace="android:appComponentFactory"' 添加到 AndroidManifest.xml:5:5-40:19 的元素中进行覆盖。

没有材质库一切正常。

我已经尝试过的

  1. 我更改了依赖项的顺序(这显然不起作用)
  2. 我也尝试添加tools:replace="android:appComponentFactory"按照错误消息中的建议添加到我们的清单文件中。但这给我留下了一条新的错误消息:

java.lang.RuntimeException:清单合并失败并出现多个错误,请参阅日志 在 com.android.builder.core.AndroidBuilder.mergeManifestsForApplication(AndroidBuilder.java:524) 在com.android.build.gradle.tasks.ProcessManifest.doFullTask​​Action(ProcessManifest.java:75) 在com.android.build.gradle.internal.tasks.IncrementalTask​​.taskAction(IncrementalTask​​.java:106)

我检查了日志文件,但 idea.log 中显示的唯一警告是

2018-08-08 11:08:21,500 [线程 267] 警告 - .tools.idea.model.ManifestInfo - getMergedManifest 失败清单 合并失败,出现多个错误,请参阅日志 2018-08-08 11:08:21,642 [线程 267] 警告 - .tools.idea.model.ManifestInfo - getMergedManifest failed 清单合并失败并出现多个错误, 参见日志2018-08-08 11:08:21,917 [J池0/7]

更多信息

API版本

android {
compileSdkVersion 28
buildToolsVersion '28.0.0'

defaultConfig {
    minSdkVersion 19
    targetSdkVersion 28
    versionCode 1
    versionName "1.0"
}

(在Android Studio中的文件>项目结构中选择相同的API)

依赖项:

dependencies {
api fileTree(include: ['*.jar'], dir: 'libs')

/** ANDROID LIBRARIES  **/
implementation 'com.android.support:multidex:1.0.2'
implementation 'com.android.support:appcompat-v7:28.0.0-beta01'
api 'com.android.support:support-v13:28.0.0-beta01'
api 'com.google.android.material:material:1.0.0-beta01'
api 'com.android.support:design:28.0.0-beta01'
api 'com.android.support:preference-v7:28.0.0-beta01'
api 'com.android.support:cardview-v7:28.0.0-beta01'
api 'com.android.support:customtabs:28.0.0-beta01'
api 'com.android.support:support-v4:28.0.0-beta01'

/** GOOGLE PLAY SERVICE  **/
api 'com.google.android.gms:play-services-auth:15.0.1'

api 'com.google.android.gms:play-services-drive:15.0.1'
api 'com.google.android.gms:play-services-fitness:15.0.1'
api 'com.google.android.gms:play-services-maps:15.0.1'
api 'com.google.android.gms:play-services-wearable:15.0.1'
api 'com.google.android.gms:play-services-vision:15.0.2'

api 'com.google.firebase:firebase-core:16.0.1'
api 'com.google.firebase:firebase-perf:16.0.0'
api 'com.crashlytics.sdk.android:crashlytics:2.9.4'

//sunrise and sundown calculation for map day and night mode
api 'com.luckycatlabs:SunriseSunsetCalculator:1.2'

/** GOOGLE MAPS  **/
implementation 'com.google.maps.android:android-maps-utils:0.5'
implementation 'com.google.code.gson:gson:2.8.0'

/** EXTERNAL LIBRARIES  **/

implementation 'org.osmdroid:osmdroid-android:5.6.5'
implementation 'org.osmdroid:osmdroid-mapsforge:5.6.5'
implementation 'org.mapsforge:mapsforge-map-android:0.6.1'
implementation 'org.mapsforge:mapsforge-map:0.6.1'
implementation 'com.caverock:androidsvg:1.2.2-beta-1'

//dropbox api
implementation 'com.dropbox.core:dropbox-core-sdk:3.0.6'    

androidTestImplementation 'junit:junit:4.12'
implementation files('libs/samsung-health-data-v1.3.0.jar')}

Manifest

<manifest
package="com.user.libraries.bluetooth"
xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android">

<uses-permission android:name="android.permission.NFC" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.BODY_SENSORS" />
<uses-permission android:name="android.permission.VIBRATE"/>    

<application
    tools:replace="android:appComponentFactory"
    android:allowBackup="true"
    android:supportsRtl="true">
    <service android:name="com.user.libraries.location.LocationService" />
    <service android:name="com.user.libraries.location.BleLocationTrackerService" />
    <service android:name="com.user.libraries.sensors.SensorService"/>

    <service android:name="com.user.libraries.sharing.DataExchangerService"/>

    <receiver
        android:name="com.user.libraries.bluetooth.BluetoothStateReceiver"
        android:enabled="true">
        <intent-filter>
            <action android:name="android.bluetooth.adapter.action.STATE_CHANGED"/>
        </intent-filter>
    </receiver>

    <provider
        android:name="android.support.v4.content.FileProvider"
        android:authorities="${applicationId}.provider"
        android:exported="false"
        android:grantUriPermissions="true">
        <meta-data
            android:name="android.support.FILE_PROVIDER_PATHS"
            android:resource="@xml/provider_paths"/>
    </provider>

</application>

知道如何解决这个问题吗?


不要忘记添加

android.useAndroidX=true
android.enableJetifier=true

到你的 gradle.properties。当我使用新机器时,我总是忘记这一点,因为 gradle.properties 不在源代码管理中。如果我们在这种情况下得到一个明显的错误,那就太好了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

添加依赖项 com.google.android.material 后 Android 清单合并失败 的相关文章

随机推荐

  • 如何在 Python 中将 '%' 替换为 '\x'

    我的目标是将base64编码的 EB 字符串转换为 xEB 然而 一尝试 我发现这很难 并且通过 string replace 和 re sub 都无法实现 我的代码失败如下 target EB AF B8 EB 9F AC EC 8A A
  • 如何使用同一个 R 包的多个版本?

    为了能够比较包的两个版本 我需要能够选择加载哪个版本的包 R 的包系统默认设置为覆盖现有包 以便您始终拥有最新版本 我该如何覆盖这种行为 到目前为止我的想法是 我可以获取包源 编辑描述以给出不同的名称 并实际上构建两个不同的包 不过 我宁愿
  • 谁能告诉我 python 中的 pika 和 kombu 消息传递库有什么区别?

    我想在我的应用程序中使用消息传递库与rabbitmq交互 谁能解释一下 pika 和 kombu 库之间的区别吗 Kombu 和 pika 是两个不同的 Python 库 它们从根本上服务于相同的目的 向消息代理发布消息和使用消息代理发送消
  • 检查谷歌地图应用程序是否安装在react-native iOS中

    我尝试使用 npm 模块react native check app install但我无法实现 结果总是错误的 还尝试过react native installed apps获取手机中安装的应用程序列表 但这始终返回空列表 您确定声明了
  • Laravel 所有输入字段均为必填

    我有大约 50 个输入字段 它们都是必需的 有没有简单的方法来检查它们是否都已设置 所以我不必手动将每个字段放入我的模型中 验证规则为 必需 我知道这已经晚了 但我编写了一个简单的函数来为自己解决这个问题 foreach request g
  • 以网格格式绘制脉冲响应函数

    我已经从 R 中的 VAR 模型运行了以下脉冲响应函数 debtarg 1 lt irf var est debt arg response pfdebt arg impulse sp n ahead 40 ortho TRUE boot
  • Java Web 开发的学习路线?

    我继承了一个大型Java Web项目 我必须对其进行一些修改 在基础知识方面我是一个相当称职的Java程序员 但我以前从未做过任何JSP编程或EJB编程 我记得大约 5 年前在大学里做过一些 servlet 编程 但我假设从那时起一切都发生
  • 访问控件值的最有效方法是什么?

    在我必须访问控件的值的两个选择中 哪个是最有效的 getComponent ControlName getValue or dataSource getItemValue FieldName 我发现有时getComponent似乎没有返回当
  • 使用 Python 查找 Mac UUID/序列号

    基本上 我计划将计算机的 UUID 序列号与它运行的密钥绑定起来 在 Windows 上 我发现获取 UUID 很容易 但我很难为 Mac 获取任何东西 有什么解决办法吗 MacOS 有一个内置程序用于访问此信息 您可以使用以下命令获取它
  • 调整工作表演示文稿 SwiftUI 的大小

    我正在尝试以小尺寸呈现模型视图 有什么办法可以调整大小吗 Button Present self presentingModal true padding sheet isPresented presentingModal content
  • 将图像从 api url 加载到 Angular 5 组件中

    我有一个 html 结构如下的组件 img src img 并在打字稿中 constructor private loginService LoginService this img null this loadImage loadImag
  • 如何解决此问题:应用程序启用 YouTube 视频的后台播放

    我制作了一个播放 YouTube 视频的phonegap 应用程序 谷歌已将其从 Play 商店下架 因为 该应用程序可以在后台播放 YouTube 视频 我不知道这意味着什么 有人可以帮我解决这个问题 以便视频不会在后台播放吗 Thank
  • Windows 服务中使用 App.Config 的 WCF 命名管道

    我烦了 好的 这是错误 net pipe localhost MyIpcAppToService 上没有侦听端点可以接受该消息 这通常是由不正确的地址或 SOAP 操作引起的 有关更多详细信息 请参阅 InnerException 如果存在
  • 无法在 makefile 中调用 bash 函数

    我的印象是我可以在 GNU makefile 中调用 bash 函数 但似乎是错误的 这是一个简单的测试 我定义了这个函数 gt type lsc lsc is a function lsc ls color auto color tty
  • java.lang.IllegalStateException:无法获取表面

    我正在尝试创建一个应用程序 使用户能够录制其智能手机的屏幕 这是我的起始代码 import android content Context import android content Intent import android hardw
  • 在 Azure 中,为什么 AuthClientId 也称为应用程序 Id?

    我发现 Azure 中的应用程序注册非常令人困惑 在我的在这里提问 https stackoverflow com questions 50921099 invalid provider type specified cryptograph
  • 获取登录用户 JavaFX 和 MySQL

    我正在开发我的项目 其中有用户界面 用户必须在登录阶段的文本字段中输入用户名和密码 这会将他移至下一个阶段 我想知道当前登录的是哪个用户 这两个阶段有单独的控制器 我尝试在登录阶段创建 setter 和 getter 将用户设置为他在用户名
  • PyInstaller“ValueError:太多值无法解压”

    pyinstaller 版本 3 2 操作系统 win10 我的 python 脚本在 Winpython Python 解释器中运行良好 但是当我使用 Pyinstaller 包时 python 脚本包含 caffe 模块 我将面临的问题
  • 通过 Javascript 在 Firestore 中获取按文档 ID 排序的数据?

    通过 Javascript 在 Firestore 中获取按文档 ID 排序的数据 在Android中 我可以使用查询转到特定文档 mQuery docRef whereEqualTo name name whereEqualTo vali
  • 添加依赖项 com.google.android.material 后 Android 清单合并失败

    我们希望使用 Google 提供的最新材料设计 UI 元素 因此我添加了com google android material material 1 0 0 beta01在我们的项目 gradle 文件中 但从那时起我收到以下错误 清单合并