Android emulator PlatformException(加载失败的广告,无法重新加载失败的广告,id=571273309,null)
我在我的颤振项目中加入了广告。当我第一次在Android emulator上点击“加载广告”按钮时,广告会加载并完美显示。但当我关闭广告并再次单击“加载广告”按钮时,我得到了以下例外: I/颤振(1549):间隙事件MobileAdEvent.closed D/DynamicPackage(1549):实例化com.google.android.gms.ads.ChimeraAdManagerCreatorImpl I/Ads(1549):此请求从测试设备发送。 W/颤振(1549):onAdFailedToLoad:3 I/Ads(1549):Ad未能加载:3 I/颤振(1549):间隙事件MobileAdEvent.failedToLoad E/flatter(1549):[错误:flatter/lib/ui/ui\u dart\u state.cc(148)]未处理的异常:平台异常(加载失败的ad,无法重新加载失败的ad,id=571273309,null) 颤振医生: [√] 颤振(通道稳定,v1.9.1+修补程序.6,在Microsoft Windows[Version 10.0.18362.418]上,美国语言环境) •颤振版本1.9.1+热修复程序.6,位于C:\Users\olgam\source\颤振 •框架修订68587a0916(9周前),2019-09-13 19:46:58-0700 •发动机版本b863200c37 •Dart版本2.5.0 [√] Android工具链-为Android设备开发(Android SDK版本28.0.3) •C:\Users\olgam\AppData\Local\Android\SDK上的Android SDK •未配置Android NDK位置(可选;用于本机评测支持) •平台android-28,构建工具28.0.3 •Java二进制文件:C:\Program Files\Android\Android Studio\jre\bin\Java •Java版本OpenJDK运行时环境(build 1.8.0_202-release-1483-b03) •接受所有Android许可证 [√] Android Studio(3.5版) •Android Studio位于C:\Program Files\Android\Android Studio •颤振插件版本41.0.2 •Dart插件版本191.8593 •Java版本OpenJDK运行时环境(build 1.8.0_202-release-1483-b03) [√] 已连接设备(2个可用) •SM G930U•d77c5f0b•安卓-arm64•安卓8.0.0(API 26) •为x86构建的Android SDK•emulator-5554•Android-x86•Android 9(API 28)(emulator) •未发现任何问题 这是我的密码:Android emulator PlatformException(加载失败的广告,无法重新加载失败的广告,id=571273309,null),android,flutter,firebase-admob,Android,Flutter,Firebase Admob,我在我的颤振项目中加入了广告。当我第一次在Android emulator上点击“加载广告”按钮时,广告会加载并完美显示。但当我关闭广告并再次单击“加载广告”按钮时,我得到了以下例外: I/颤振(1549):间隙事件MobileAdEvent.closed D/DynamicPackage(1549):实例化com.google.android.gms.ads.ChimeraAdManagerCreatorImpl I/Ads(1549):此请求从测试设备发送。 W/颤振(1549):onAdF
class MainPage extends StatefulWidget {
final String _locale;
MainPage(this._locale);
@override
State<StatefulWidget> createState() {
return MainPageState();
}
}
class MainPageState extends State<MainPage> {
InterstitialAd _interstitialAd;
static const MobileAdTargetingInfo targetingInfo = MobileAdTargetingInfo(
childDirected: true, keywords: ['Games', 'Puzzles', 'Kids']);
InterstitialAd buildInterstitial() {
return InterstitialAd(
adUnitId: Constants.UNIT_ID,
targetingInfo: targetingInfo,
listener: (MobileAdEvent event) {
print("InterstitialAd event $event");
if (event == MobileAdEvent.failedToLoad) {
_interstitialAd.load();
} else if (event == MobileAdEvent.closed) {
_interstitialAd = buildInterstitial()..load();
}
},
);
}
@override
void initState() {
FirebaseAdMob.instance.initialize(appId: Constants.APP_ID);
_interstitialAd = buildInterstitial()..load();
super.initState();
}
@override
void dispose() {
_interstitialAd?.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('Kids Development'),
),
body: Container(
width: double.infinity,
margin: EdgeInsets.all(15.0),
child: RaisedButton(
child: Text('Load ads'),
onPressed: () {
//print('--------trying to build interstitial');
//_interstitialAd = buildInterstitial();
_interstitialAd
..load()
..show();
},
)
);
}
}
class主页扩展StatefulWidget{
最终字符串_locale;
主页(此区域设置);
@凌驾
状态createState(){
返回MainPageState();
}
}
类MainPageState扩展状态{
间质体_间质体;
静态常量MobileAdTargetingInfo targetingInfo=MobileAdTargetingInfo(
childDirected:true,关键字:[“游戏”,“拼图”,“孩子]);
间质的{
返回间隙翼(
adUnitId:Constants.UNIT\u ID,
targetingInfo:targetingInfo,
侦听器:(MobileAdEvent事件){
打印(“间隙事件$event”);
如果(事件==MobileAdEvent.failedToLoad){
_间隙载荷();
}else if(事件==MobileAdEvent.closed){
_填隙LAD=构建填隙()…加载();
}
},
);
}
@凌驾
void initState(){
FirebaseAdMob.instance.initialize(appId:Constants.APP\u ID);
_填隙LAD=构建填隙()…加载();
super.initState();
}
@凌驾
无效处置(){
_填隙物?.dispose();
super.dispose();
}
@凌驾
小部件构建(构建上下文){
返回脚手架(
appBar:appBar(
标题:文本(“儿童发展”),
),
主体:容器(
宽度:double.infinity,
边距:所有边缘集(15.0),
孩子:升起按钮(
子项:文本(“加载广告”),
已按下:(){
//打印('----尝试构建间隙');
//_intersticalad=buildInterstitial();
_间隙体
…加载()
…显示();
},
)
);
}
}
这只发生在真实的广告单元id上。如果我使用Interstitularad.testAdUnitId,则everythins工作正常。由于填充问题,您的广告无法加载。从错误代码3可以看出,请求已发送,但由于缺乏库存,未返回任何广告(请查看您的AdMob报告以了解匹配率)。发送更多广告请求后请检查
这种情况通常发生在新帐户/ad单元ID上。我不明白为什么它会一直发生在模拟器上,因为谷歌应该只发送测试广告-在我的情况下,问题在于我在AdMob控制台中设置的阻止控件。我降低了它们的严格性,现在一切都正常了。在我看来,应该有两个级别的测试广告,一个“本地”不查询互联网,一个完整的生活,因为它将失败,你被困在正确的方式设计…你是怎么做到的?