【问题标题】:Admob React Native google mobile ads not working on real device, Rewarded ads working on Emulator but crashing on real deviceAdmob React Native 谷歌移动广告无法在真实设备上运行,奖励广告在模拟器上运行但在真实设备上崩溃
【发布时间】:2022-11-12 19:55:43
【问题描述】:

我正在创建一个反应原生应用程序,在我的模拟器谷歌移动广告(奖励测试广告)中运行良好。但是当我在我的真实设备(个人手机)上测试应用程序时,奖励广告不起作用,它使应用程序崩溃,只有横幅广告在真实设备上工作。

是什么问题,有大神能解答一下吗? 先感谢您

下面是我用于奖励广告的代码

import React, { useState, useEffect } from "react";
import { View, Button, Text, ScrollView, } from 'react-native'
import { RewardedAd, RewardedAdEventType, TestIds } from 'react-native-google-mobile-ads';

const adUnitId = __DEV__ ? TestIds.REWARDED : 'ca-app-pub-3940256099942544/5224354917';

const rewarded = RewardedAd.createForAdRequest(adUnitId, {
  requestNonPersonalizedAdsOnly: true,
  keywords: ['fashion', 'clothing'],
});

const Testing = ({ navigation }) =>{
    const [loaded, setLoaded] = useState(false);

    useEffect(() => {
      const unsubscribeLoaded = rewarded.addAdEventListener(RewardedAdEventType.LOADED, () => {
        setLoaded(true);
        rewarded.show();
      });
      const unsubscribeEarned = rewarded.addAdEventListener(
        RewardedAdEventType.EARNED_REWARD,
        reward => {
          console.log('User earned reward of ', reward);
        },
      );
  
      // Start loading the rewarded ad straight away
      rewarded.load();
  
      // Unsubscribe from events on unmount
      return () => {
        unsubscribeLoaded();
        unsubscribeEarned();
      };
    }, []);
  
    return (
        <ScrollView>
        <View style={{flex:1, justifyContent : 'center',alignItems : 'center'}}>
        <Text> 
        Lorem Ipsum is simply dummy text of the printing and typesetting industry.
        Lorem Ipsum has been the industry's standard dummy text ever since the 1500s,
         </Text>
        <Button onPress = {() => navigation.navigate('First')} title='Next Screen'></Button>
           </View>
        </ScrollView>
    )
    
    }
    export default Testing;

请检查图像截图-

【问题讨论】:

  • 嘿,@vinayr 先生,你对这个问题有什么想法吗?

标签: android reactjs react-native admob ads


【解决方案1】:

react-native-google-mobile-ads 维护者在这里

您将希望使用该模块的 8.1.2 版本,该模块具有我刚刚进行的修复以避免对 admob SDK 的反射性使用,因此 proguard 在确定要保留的内容时不会遇到问题,并且我们不会遇到混淆名称后的问题-proguard

https://github.com/invertase/react-native-google-mobile-ads/issues/241#issuecomment-1275530015

【讨论】:

    【解决方案2】:

    我真的不明白为什么记录如此糟糕!

    这是我的工作代码:

     import { InterstitialAd,BannerAd, TestIds,setTestDeviceIDAsync } from '@react-native-admob/admob';
    
    componentDidMount() {
        const ad = InterstitialAd.createAd('ca-app-pub-3940256099942544/1033173712', {
              loadOnDismissed: true,
              requestOptions: {
                requestNonPersonalizedAdsOnly: true,
              },
            });
            ad.addEventListener('adLoaded', () => {
             ad.show();
            });
            ad.addEventListener('adDismissed', () => {
        
            });
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多