You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native安装OneSignal后Android依赖版本冲突致Manifest合并失败

解决React Native安装OneSignal后的Manifest合并冲突问题

我之前在React Native项目里集成OneSignal时也碰到过完全一样的问题!这本质是依赖版本冲突:OneSignal引入的com.android.support:support-v4:26.1.0和你项目里已有的com.android.support:cardview-v7:26.0.1使用了不同版本的Android Support库,导致AndroidManifest合并时版本号“打架”。

给你两个亲测有效的解决办法:

方法一:通过Gradle强制统一所有Support库版本

这是我个人更推荐的方案,能一劳永逸解决所有Support库版本冲突:

  • 打开项目根目录下的android/build.gradle文件
  • 在allprojects代码块的repositories上方,添加这段配置:
subprojects {
    project.configurations.all {
        resolutionStrategy.eachDependency { details ->
            if (details.requested.group == 'com.android.support'
                    && !details.requested.name.contains('multidex') ) {
                details.useVersion "26.1.0"
            }
        }
    }
}
  • 这段代码会强制让所有依赖的Android Support库都使用26.1.0版本,彻底消除版本不一致的问题。

方法二:修改AndroidManifest.xml手动覆盖版本

如果你不想全局统一版本,也可以直接在Manifest里指定要使用的版本:

  • 打开android/app/src/main/AndroidManifest.xml
  • 先在根标签manifest里添加tools命名空间(不然tools:replace会报错):
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    package="你的应用包名">
  • 然后在<application>标签内添加这个meta-data标签,用来覆盖冲突的版本值:
<meta-data
    android:name="android.support.VERSION"
    android:value="26.1.0"
    tools:replace="android:value" />

两种方法选一个就行,之后重新执行react-native run-android应该就能正常构建了。

内容的提问来源于stack exchange,提问作者Mizlul

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:41:42