Flutterでgoogle_mobile_ads(https://pub.dev/packages/google_mobile_ads)を使い、
admobを実装しようとしたところ
下記のエラーが出ました。
そのためhot restartすると一瞬エラー画面が写り、
その後に画面が正常になるという挙動になっています。
このエラーの治し方を教えてもらえないでしょうか?
LateInitializationError: Field 'banner' has not been initialized.
main.dart
dart
1void main() { 2 WidgetsFlutterBinding.ensureInitialized(); 3 final initFuture = MobileAds.instance.initialize(); 4 final adState = AdState(initFuture); 5 runApp( 6 Provider.value( 7 value: adState, 8 builder: (context,child)=>MyApp(), 9 ), 10 ); 11}
エラーが出てる.dartファイル該当箇所
dart
1class _NpbPageState extends State<NpbPage> { 2 late BannerAd banner; 3 4 5 6 void didChangeDependencies() { 7 super.didChangeDependencies(); 8 final adState = Provider.of<AdState>(context); 9 adState.initialization.then((status) { 10 setState(() { 11 banner = BannerAd( 12 adUnitId: adState.bannerAdUnitId, 13 size: AdSize.banner, 14 request: const AdRequest(), 15 listener: adState.BannerAdListener2, 16 )..load(); 17 }); 18 }); 19 } 20 21 22 23 24 25 26 27 Widget build(BuildContext context) { 28 return Scaffold( 29 body: Column( 30 children: [ 31 Expanded( 32 child: ListView.builder( 33 itemCount: NpbList.length, 34 itemBuilder: (context,index)=> NanjRow(NpbList[index]), 35 ), 36 ), 37 if (banner == null) 38 SizedBox(height: 50) // Ads 39 else 40 Container( 41 height: 50, 42 child: AdWidget(ad: banner), 43 ) 44 ], 45 ), 46 ); 47 } 48 49}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。