问题描述
我正在尝试在多个屏幕上投放facebook_audience_network条横幅广告。
我正在使用以下方法在每个Flutter应用程序屏幕中创建横幅广告。我面临的问题是我第一次成功加载哪个屏幕(带有横幅广告实施代码的屏幕)。
但是,当我转到另一个屏幕时,它还是不会加载广告。我还实现了逻辑,即30秒后在整个应用中发出广告请求。在第一个屏幕中加载后,我仍然无法在其他屏幕上加载广告。
createBannerAd() {
_currentAd = Container(
alignment: Alignment(0.5,1),child: FacebookBannerAd(
placementId: IMG_16_9_APP_INSTALL#2312433698835503_2964944860251047,bannerSize: BannerSize.STANDARD,listener: (result,value) {
switch (result) {
case BannerAdResult.ERROR:
_adShown = false;
print("Error: $value");
break;
case BannerAdResult.LOADED:
print("Loaded: $value");
break;
case BannerAdResult.CLICKED:
print("Clicked: $value");
break;
case BannerAdResult.LOGGING_IMPRESSION:
print("Logging Impression: $value");
break;
}
},),);
setState(() {});
}
错误日志:
D/EgretLoader(25084): EgretLoader(Context context)
D/EgretLoader(25084): The context is not activity
W/cr_AwContents(25084): Application attempted to call on a destroyed WebView
W/cr_AwContents(25084): java.lang.Throwable
W/cr_AwContents(25084): at org.chromium.android_webview.AwContents.a(PG:126)
W/cr_AwContents(25084): at TA0.loadingStateChanged(PG:2)
W/cr_AwContents(25084): at android.os.MessageQueue.nativePollOnce(Native Method)
W/cr_AwContents(25084): at android.os.MessageQueue.next(MessageQueue.java:325)
W/cr_AwContents(25084): at android.os.Looper.loop(Looper.java:148)
W/cr_AwContents(25084): at android.app.ActivityThread.main(ActivityThread.java:6634)
W/cr_AwContents(25084): at java.lang.reflect.Method.invoke(Native Method)
W/cr_AwContents(25084): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:547)
W/cr_AwContents(25084): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:822)
I/Flutter (25084): Error: {error_message: No Fill,error_code: 1001,invalidated: false,placement_id: IMG_16_9_APP_INSTALL#2312433698835503_2964944860251047}
我没有得到这段代码的问题。我已经按照文档中的步骤进行操作。
谢谢。
解决方法
你可以这样做
FacebookBannerAd fbBannerAd() {
return FacebookBannerAd(
placementId: "IMG_16_9_APP_INSTALL#2312433698835503_2964944860251047",// Platform.isAndroid ? "YOUR_ANDROID_PLACEMENT_ID" : "YOUR_IOS_PLACEMENT_ID",bannerSize: BannerSize.STANDARD,listener: (result,value) {
switch (result) {
case BannerAdResult.ERROR:
print("Error: $value");
break;
case BannerAdResult.LOADED:
print("Loaded: $value");
break;
case BannerAdResult.CLICKED:
print("Clicked: $value");
break;
case BannerAdResult.LOGGING_IMPRESSION:
print("Logging Impression: $value");
break;
}
},);
}
并将其称为您想要显示的屏幕
Widget fbBannerAD(){
return Container(
alignment: Alignment(0.5,1),child: customAd.fbBannerAd()
);
}