- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 Admob 的小部件有问题。
我正在为包含 Admob 横幅小部件的 Flutter 应用程序开发一项新功能。
但是当我 setState 另一个小部件的值时,Admob 小部件会出错。
我正在使用:google_mobile_ads: ^0.11.0+1
横幅是这样构建的:
@override
void initState() {
setState(() {
_adBanner = createBannerAd();
});
super.initState();
}
@override
void dispose() {
_adBanner.dispose();
super.dispose();
}
小部件显示如下:
Container(
margin: EdgeInsets.only(bottom: myPercent(2, screenHeight)),
child: FutureBuilder(
future: _adBanner.load(),
builder: (context, snapshot) {
if (snapshot.connectionState == ConnectionState.done) {
return Container(
margin: EdgeInsets.only(bottom: 3),
width: myPercent(95, screenWidth),
height: myPercent(6, screenHeight),
alignment: Alignment.center,
child: AdWidget(
ad: _adBanner,
),
);
}
return Container();
}),
日志错误捕获:
flutter: click
flutter: ══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
flutter: The following assertion was thrown building AdWidget(dirty, state: _AdWidgetState#a1afb):
flutter: This AdWidget is already in the Widget tree
flutter: If you placed this AdWidget in a list, make sure you create a new instance in the builder function
flutter: with a unique ad object.
flutter: Make sure you are not using the same ad object in more than one AdWidget.
flutter:
flutter: The relevant error-causing widget was:
flutter: AdWidget file:///Users/sofian/Work/Personal/Mobile/WhatUDo/what_u_do/lib/views/idea.dart:295:34
flutter:
flutter: When the exception was thrown, this was the stack:
flutter: #0 _AdWidgetState.build (package:google_mobile_ads/src/ad_containers.dart:372:7)
flutter: #1 StatefulElement.build (package:flutter/src/widgets/framework.dart:4825:27)
flutter: #2 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4708:15)
flutter: #3 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4880:11)
flutter: #4 BuildOwner._runWithCurrentBuildTarget (package:flutter/src/widgets/framework.dart:2708:15)
flutter: #5 Element.rebuild (package:flutter/src/widgets/framework.dart:4407:12)
flutter: #6 ComponentElement._firstBuild (package:flutter/src/widgets/framework.dart:4687:5)
flutter: #7 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:4871:11)
flutter: #8 ComponentElement.mount (package:flutter/src/widgets/framework.dart:4682:5)
flutter: ... Normal element mounting (10 frames)
flutter: #18 Element.inflateWidget (package:flutter/src/widgets/framework.dart:3660:14)
flutter: #19 Element.updateChild (package:flutter/src/widgets/framework.dart:3422:20)
flutter: #20 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4733:16)
flutter: #21 BuildOwner._runWithCurrentBuildTarget (package:flutter/src/widgets/framework.dart:2708:15)
flutter: #22 Element.rebuild (package:flutter/src/widgets/framework.dart:4407:12)
flutter: #23 StatelessElement.update (package:flutter/src/widgets/framework.dart:4789:5)
flutter: #24 Element.updateChild (package:flutter/src/widgets/framework.dart:3412:15)
flutter: #25 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4733:16)
flutter: #26 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4880:11)
flutter: #27 BuildOwner._runWithCurrentBuildTarget (package:flutter/src/widgets/framework.dart:2708:15)
flutter: #28 Element.rebuild (package:flutter/src/widgets/framework.dart:4407:12)
flutter: #29 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:2813:33)
flutter: #30 WidgetsBinding.drawFrame (package:flutter/src/widgets/binding.dart:899:21)
flutter: #31 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:320:5)
flutter: #32 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1119:15)
flutter: #33 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1057:9)
flutter: #34 SchedulerBinding._handleDrawFrame (package:flutter/src/scheduler/binding.dart:973:5)
flutter: #38 _invoke (dart:ui/hooks.dart:157:10)
flutter: #39 PlatformDispatcher._drawFrame (dart:ui/platform_dispatcher.dart:253:5)
flutter: #40 _drawFrame (dart:ui/hooks.dart:120:31)
flutter: (elided 3 frames from dart:async)
最佳答案
从问题和错误日志来看,您似乎正在尝试使用 setState
来刷新屏幕/小部件但不是实际的基于广告的容器小部件 - 您仍然收到此错误。
如果我理解正确.. 那么问题是关于广告小部件试图在 setState
上重建使用旧的广告对象调用,但每次新建时都期望新的广告对象。因此,如果不需要,请避免构建此类小部件。
创建一个单独的基于广告的容器小部件,如 AppXyzAdWidget
并将广告的父容器代码和其他与广告相关的代码移动到新小部件内,并在屏幕上使用新创建的基于广告的小部件。
通过这种方式,您可以在没有广告相关内容的情况下分离屏幕,然后在 setState
之后不会重新加载您的广告及其小部件,只会刷新您的内容。
关于调用 setState 时 Flutter Admob 的小部件出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66644543/
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 1年前关闭。 Improve thi
当我在 Admob 页面中创建插页式广告单元时,它要求输入 Interstitial timeout : Determine how long to display the interstitial
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 2年前关闭。 Improve thi
我的应用使用奖励视频广告,但在我看来,有时广告太长了。如何设置广告的时长限制? 最佳答案 这不是 AdMob 提供的功能。不过,感觉太长的广告通常会获得较少的点击次数,因此随着系统的调整,展示次数会越
我正在使用 admob 插页式广告,它通过 onCreate 加载 所以我可以使用它一次,但不能使用两次。我必须重新加载它然后使用它... 我想在显示后立即重新加载它,但似乎没有这样的回调监听器...
我有 admob 帐户,并且广告单元已成功放入我的应用程序中。 现在我想在我的应用程序中打印 admob 报告,就像用户 ABC 在这个应用程序中点击了“_”次赚取和应用程序的 RPM 我该怎么做,有
这可能是题外话,但请这对我们所有人都非常有帮助,他们从未知来源获得虚假点击,只是为了暂停我们的 admob 帐户。 最佳答案 对于 iOS 您应该使用 here 所述的委托(delegate)方法计算
Admob 几天前迁移到了较新的版本。他们成功转移了我的应用程序,但似乎我必须从 0,00 美元重新开始。我的旧 Admob 大约有 15 美元。我怎样才能把它转移到新的,否则它会丢失吗?支付限额为
我认为有人试图让我在 AdMob 中被禁止 - 在来自“未知”国家/地区的地理统计点击中,点击率达到 80%-90%(其他国家/地区 < 3%)。 如果用户来自“未知”国家/地区,是否有办法阻止展示广
我在展示来自 admob 的广告时在布局上遇到了一些问题。 应用刚启动时没有广告,一切正常。布局占据整个屏幕。然后当应用程序可以加载广告时(在顶部),整个布局将向下移动以显示广告。 如果有广告时整个布
是否可以在 Android 上以多种语言显示 GDPR 同意对话框? 我只能用一种语言发布一条消息。 在ump sdk中没有看到拟合方法。 我的意思是必须有办法做到这一点,如果没有,那么这个 sdk
我在 iOS 游戏中使用 AdMob,我最近更新了它以在我的 Info.plist 文件中包含 AdMob SKAdNetworkIdentifier(因为我的 AdMob 帐户中有警告要求这样做)。
这是我的代码: gAdView=[[GADBannerView alloc] initWithFrame:CGRectMake(0,self.view.bounds.size.height-GAD_S
Google 对使用 是否有限制或警告?奖励广告 限时? 因此,在我的应用程序中,如果我让我的用户按他/她想要的次数观看激励广告,将 谷歌 将其视为 无效流量这会导致帐户停用? 最佳答案 不,激励广告
我在 Google Play 上发布了一个游戏,我在上面放了 admob 广告。 由于无效的点击事件,我的 admob 帐户被禁用。 现在我创建了另一个帐户,将我的游戏链接到它。 我显示广告的代码是正
关于 AdSense 报告 API - GET/accounts/accountId/reports 它是仅检索 AdMob 数据(作为广告网络)还是也可以包括来自其他中介广告网络的数据? 最佳答案
我已经知道这个问题的答案,但我之所以这么问,是因为我花了几个小时才找到它,并且想让其他人轻松获得它。 自 2020 年 12 月 8 日起,Apple 已强制要求开发人员发布正在收集的数据以及这些数据
使用 AdWhirl 我得到了这些异常(exception)... 我无法从我这边发现错误...... 任何人都可以对此提出建议.. FATAL EXCEPTION: main E/AndroidRu
这就是我的 Admob 横幅的实现方式。 在 Layout.xml 中 在 AdActivity.java 中 private void initBannerViewGroup()
我想在同一事件中同时展示横幅广告和插页式广告。但我不确定这是否会违反 Google admob 政策,因为当显示插页式广告时,它会覆盖横幅广告。 谢谢。 最佳答案 这是允许的。事实上,建议您这样做以增
我是一名优秀的程序员,十分优秀!