gpt4 book ai didi

android - 谷歌移动广告实现减慢了 Flutter App

转载 作者:行者123 更新时间:2023-12-04 11:39:53 25 4
gpt4 key购买 nike

我一直在我的 flutter 应用程序上实现横幅广告,我成功地展示了横幅,但我的应用程序运行速度非常慢,以至于它崩溃并关闭。
我一直在寻找解决这个问题的方法,但似乎找不到任何解决方案,尽管很多人都遇到了同样的情况。
如果你们能帮助我,我将不胜感激。
我的代码如下:
adhelper.dart

import 'dart:io';
import 'package:google_mobile_ads/google_mobile_ads.dart';

class AdHelper {

Future<InitializationStatus> initialization;

AdHelper(this.initialization);

static String get bannerAdUnitId => Platform.isAndroid
? 'ca-app-pub-3940256099942544/6300978111' \\Test ads
: 'ca-app-pub-3940256099942544/2934735716'; \\Test ads


}
主页.dart
class _MainPageState extends State<MainPage>...

final Completer<BannerAd> bannerCompleter = Completer<BannerAd>();

...

BannerAd banner;

...

@override
void didChangeDependencies(){
super.didChangeDependencies();
final adHelper = Provider.of<AdHelper>(context);
adHelper.initialization.then((status){
setState(() {
banner ??= BannerAd(
adUnitId: AdHelper.bannerAdUnitId,
size: AdSize.banner,
request: AdRequest(),
listener: AdListener(
onAdLoaded: (Ad ad) {
print('Ad loaded: $BannerAd.');
bannerCompleter.complete(ad as BannerAd);
},
onAdFailedToLoad: (Ad ad, LoadAdError error) {
print('Ad failed to load: $BannerAd, $error');
bannerCompleter.completeError(null);
},
onAdOpened: (Ad ad) => print('Ad opened: $BannerAd.'),
onAdClosed: (Ad ad) => print('Ad closed: $BannerAd.'),
onApplicationExit: (Ad ad) => print('App Exit: $BannerAd.'),
),
);
Future<void>.delayed(Duration(seconds: 1), () => banner?.load());
});
});
}

@override
void dispose() {
super.dispose();
banner?.dispose();
banner = null;
}

@override
Widget build(BuildContext context) {
return FutureBuilder<BannerAd>(
future: bannerCompleter.future,
builder: (BuildContext context, AsyncSnapshot<BannerAd> snapshot) {
Widget child;

switch (snapshot.connectionState) {
case ConnectionState.none:
case ConnectionState.waiting:
case ConnectionState.active:
child = Container();
break;
case ConnectionState.done:
if (snapshot.hasData) {
child = AdWidget(ad: banner);
} else {
child = Text('Error loading $BannerAd');
}
}
...

if (banner == null)
SizedBox(height: 50,)
else
Container(
width: banner.size.width.toDouble(),
height: banner.size.height.toDouble(),
child: child,
和我的 main.dart
Future<void> main() async {
WidgetsFlutterBinding.ensureInitialized();
final initFuture = MobileAds.instance.initialize();
final adHelper = AdHelper(initFuture);

....

runApp(
Provider.value(
value: adHelper,
builder: (context, child) => MyApp(),
),

最佳答案

此问题仅发生在使用 Android 10 或更低版本的设备上,我的设备(使用 android 10)上遇到了同样的问题。
我推荐使用这个插件,它为我和很多其他人解决了这个问题。
native_admob_flutter

关于android - 谷歌移动广告实现减慢了 Flutter App,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66683687/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com