【问题标题】:React native "Execution failed for task: ':app:processDebugManifest' after adding Admob module添加 Admob 模块后反应本机“任务执行失败:':app:processDebugManifest'
【发布时间】:2019-06-23 15:14:44
【问题描述】:

使用 React Native 项目并准备发布但遇到此错误:

Execution failed for task ':app:processDebugManifest'.
> 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:7:5-117 to override.

在使用“npm i --save react-native-admob@next”通过 npm 添加“react-native-admob”模块之前工作正常

为了完成项目,我需要运行 admob!请帮忙!

【问题讨论】:

    标签: android react-native npm admob


    【解决方案1】:

    您遇到此问题是因为您的依赖项取决于 android 支持库。有些有旧版本,例如。 'com.android.support..',而有些依赖于名为 'androidx.core..' 的较新的 androidX 库。在同一个项目中同时拥有 com.android.support 和 androidx 库会阻止应用构建。

    此问题可能源于 6 月 17 日对 google play 服务的更新,其中包括对 android 支持库的重大更改。 https://developers.google.com/android/guides/releases.

    要解决此问题,请识别所有 yr react-native 软件包并检查它们是否具有已强制更新到提供 androidx 的最新版本的依赖项(列在播放服务发行说明下)。如果项目中有包含 build.gradles 的 android 文件夹,请尝试 cd android,然后运行 ​​./gradlew app:dependencies --scan。这会生成一个指向报告的唯一链接,供您检查每个包的依赖项。扩展您的依赖项并确保完全扩展时的 react-native 包不包含任何 androidx 文件。检查所有路径,testCompileClasspath,testRuntimeClassPath....

    如果您确实有受影响的依赖项,则需要强制这些包使用带有 com.android.support 的旧版本。这个问题链接有几个关于如何实施的建议。 https://github.com/facebook/react-native/issues/25292

    几天前,我通过在我的 app/build.gradle 中执行与此类似的操作解决了这个问题:

    implementation(project(':react-native-camera')){
      exclude group: 'com.google.android.gms'
    }
    

    您可能还需要声明一些顶级配置以强制 google play 服务和 firebase 使用特定版本。

    关于 androidx 的官方文档建议人们切换到使用较新的库 androidx,并告诉您启用 androidX 和 Jettifier 为 true。这不适用于 react-native 库 100%。因此,在您确定项目中的所有依赖项都符合迁移到 androidx 的条件之前,请不要将包升级到 androidx。

    【讨论】:

    • 感谢您的详细回答。我尝试使用我的库进行顶级配置无济于事,但这个答案给了我找到需要修复的正确依赖项所需的东西
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-17
    • 2021-09-10
    • 1970-01-01
    • 2017-11-12
    • 1970-01-01
    • 1970-01-01
    • 2018-03-27
    相关资源
    最近更新 更多