Admob React原生谷歌移动的广告无法在真实的设备上工作,奖励广告在模拟器上工作,但在真实设备上崩溃

ds97pgxw  于 2022-11-17  发布在  React
关注(0)|答案(2)|浏览(145)

我正在创建一个React原生应用程序,在我的模拟器谷歌移动的广告(奖励测试广告)工作得很好.但当我在我的真实的设备上测试应用程序(个人手机)然后奖励广告不工作,它崩溃了应用程序,只有横幅广告在真实设备上工作.
有什么问题,可以请任何人回复与解决方案?谢谢你提前
下面是我用于奖励广告的代码

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;

请查看图片截图-x1c 0d1xx 1c 1d 1xx 1c 2d 1xx 1c 3d 1x

ac1kyiln

ac1kyiln1#

这里是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

xdnvmnnf

xdnvmnnf2#

我真的不明白为什么这是记录如此糟糕!
下面是我的工作代码:

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', () => {
    
        });
}

或者给予以下模块:npm iReact-本地-谷歌-移动-广告
https://www.npmjs.com/package/react-native-google-mobile-ads

相关问题