【问题标题】:App is crashing while calling interstitialAd.load() method in React-Native在 React-Native 中调用 interstitialAd.load() 方法时应用程序崩溃
【发布时间】:2021-07-10 19:37:08
【问题描述】:

我试图在我的项目中放置 interstitialAd,但 interstitialAd.load(); 使应用程序崩溃。我的 AdMob 配置很好,广告横幅广告运行良好

使用的插件:@react-native-firebase/admob

代码如下:

import { Button, View } from 'react-native';
import { InterstitialAd, AdEventType, TestIds } from '@react-native-firebase/admob';

export default class InterstitialAdUnit extends React.Component {
    constructor(props) {
        super(props);
    }
    
    showInterstitialAd = () => {
        
        const interstitialAd = InterstitialAd.createForAdRequest(TestIds.INTERSTITIAL);
       
        interstitialAd.onAdEvent((type, error) => {           
            if (type === AdEventType.LOADED) {
                interstitialAd.show();
            }
        });
        
        interstitialAd.load();
    } 
    render() {
        return (
            <Button
                title="Show Interstitial"
                onPress={() => {
                    this.showInterstitialAd();
                }}
            />    
    )}
}

【问题讨论】:

  • 嗨@Dibyendu!我维护 react-native-firebase 并且我在下面发布了一个带有详细信息的答案和一个带有修复的官方版本:-) 干杯

标签: javascript android firebase react-native react-hooks


【解决方案1】:

你好,我的朋友,我为你找到了解决方案 应用程序/build.gradle 依赖{ …… 实施(“com.google.android.gms:play-services-ads:19.8.0”){ force = true; } }

【讨论】:

  • 您好,欢迎来到 Stack Overflow!请拨打tour。感谢您的回答,但您是否还可以添加有关您的代码如何解决问题的解释?查看help center 获取有关如何格式化代码的信息。
【解决方案2】:

我维护 react-native-firebase,也许我可以解释为什么会发生这种情况,以及修复方法。

@react-native-firebase/admob 单独使用时不会崩溃,与 InterstitialAds 一起使用

但是,firebase-android-sdk 和 admob 刚刚发布了一个重大更改版本(firebase-android-sdk 为 v27,admob 为 v20)移动了 InterstitialAd 包名称和 如果你有 另一个 admob 依赖项,其中 gradle 依赖项使用 + 的版本指定,这允许重大更改版本泄漏并破坏您的应用程序。

因此,正如其他人评论的那样,将依赖项固定在您的 build.gradle 中会解决您的问题:

implementation("com.google.android.gms:play-services-ads:19.8.0") { force = true; }

这里有完整的细节:https://github.com/invertase/react-native-firebase/issues/5127

react-native-firebase(包括 admob 模块)v11.3.1 现已发布,其中包含此 PR 的内容以修复问题:https://github.com/invertase/react-native-firebase/pull/5189

祝你的项目好运

【讨论】:

    【解决方案3】:

    诶, 我尝试了这个解决方案,似乎适用于第一次测试。 https://github.com/invertase/react-native-firebase/discussions/5166

    只是: 解决方法 应用程序/build.gradle

    实施(“com.google.android.gms:play-services-ads:19.8.0”){ force = true; }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多