admob_flutter icon indicating copy to clipboard operation
admob_flutter copied to clipboard

example code implementation error

Open machkonti opened this issue 5 years ago • 8 comments

Hello, I have a strange problem with implementation example code into my own project. I've tryed many different approaches but still, the banners are shown (just test ones) and got the same error:

[ERROR:flutter/lib/ui/ui_dart_state.cc(157)] Unhandled Exception: PlatformException(error, java.lang.IllegalStateException: Trying to create an already created platform view, view id: 0 E/flutter (25773): at io.flutter.plugin.platform.PlatformViewsController$1.createPlatformView(PlatformViewsController.java:85) E/flutter (25773): at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.create(PlatformViewsChannel.java:96) E/flutter (25773): at io.flutter.embedding.engine.systemchannels.PlatformViewsChannel$1.onMethodCall(PlatformViewsChannel.java:60) E/flutter (25773): at io.flutter.plugin.common.MethodChannel$IncomingMethodCallHandler.onMessage(MethodChannel.java:231) E/flutter (25773): at io.flutter.embedding.engine.dart.DartMessenger.handleMessageFromDart(DartMessenger.java:93) E/flutter (25773): at io.flutter.embedding.engine.FlutterJNI.handlePlatformMessage(FlutterJNI.java:642) E/flutter (25773): at android.os.MessageQueue.nativePollOnce(Native Method) E/flutter (25773): at android.os.MessageQueue.next(MessageQueue.java:336) E/flutter (25773): at android.os.Looper.loop(Looper.java:174) E/flutter (25773): at android.app.ActivityThread.main(ActivityThread.java:7356) E/flutter (25773): at java.lang.reflect.Method.invoke(Native Method) E/flutter (25773): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:492) E/flutter (25773): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:930) E/flutter (25773): , null) E/flutter (25773): #0 StandardMethodCodec.decodeEnvelope package:flutter/…/services/message_codecs.dart:569 E/flutter (25773): #1 MethodChannel.invokeMethod package:flutter/…/services/platform_channel.dart:321 E/flutter (25773): E/flutter (25773): #2 AndroidViewController._create package:flutter/…/services/platform_views.dart:640 E/flutter (25773): #3 AndroidViewController.setSize package:flutter/…/services/platform_views.dart:557 E/flutter (25773): #4 RenderAndroidView._sizePlatformView package:flutter/…/rendering/platform_view.dart:174 E/flutter (25773): #5 RenderAndroidView.performResize package:flutter/…/rendering/platform_view.dart:155 E/flutter (25773): #6 RenderObject.layout package:flutter/…/rendering/object.dart:1703 E/flutter (25773): #7 RenderProxyBoxMixin.performLayout package:flutter/…/rendering/proxy_box.dart:105 E/flutter (25773): #8 RenderObject.layout package:flutter/…/rendering/object.dart:1724 E/flutter (25773): #9 RenderConstrainedBox.performLayout package:flutter/…/rendering/proxy_box.dart:259 E/flutter (25773): #10 RenderObject.layout package:flutter/…/rendering/object.dart:1724 E/flutter (25773): #11 RenderPadding.performLayout package:flutter/…/rendering/shifted_box.dart:206 E/flutter (25773): #12 RenderObject.layout package:flutter/…/rendering/object.dart:1724 E/flutter (25773): #13 RenderFlex.performLayout package:flutter/…/rendering/flex.dart:744 E/flutter (25773): #14 RenderObject.layout package:flutter/…/rendering/object.dart:1724 E/flutter (25773): #15 RenderProxyBoxMixin.performLayout package:flutter/…/rendering/proxy_box.dart:105 E/flutter (25773): #16 RenderObject.layout package:flutter/…/rendering/object.dart:1724 E/flutter (25773): #17 RenderProxyBoxMixin.performLayout package:flutter/…/rendering/proxy_box.dart:105 E/flutter (25773): #18 RenderObject.layout package:flutter/…/rendering/object.dart:1724 E/flutter (25773): #19 RenderSliverMultiBoxAdaptor.insertAndLayoutChild package:flutter/…/rendering/sliver_multi_box_adaptor.dart:492 E/flutter (25773): #20 RenderSliverList.performLayout.advance package:flutter/…/rendering/sliver_list.dart:195 E/flutter (25773): #21 RenderSliverList.performLayout package:flutter/…/rendering/sliver_list.dart:238 E/flutter (25773): #22 RenderObject.layout package:flutter/…/rendering/object.dart:1724 E/flutter (25773): #23 RenderSliverEdgeInsetsPadding.performLayout package:flutter/…/rendering/sliver_padding.dart:134 E/flutter (25773): #24 RenderSliverPadding.performLayout package:flutter/…/rendering/sliver_padding.dart:373 E/flutter (25773): #25 RenderObject.layout package:flutter/…/rendering/object.dart:1724 E/flutter (25773): #26 RenderViewportBase.layoutChildSequence package:flutter/…/rendering/viewport.dart:410 E/flutter (25773): #27 RenderViewport._attemptLayout package:flutter/…/rendering/viewport.dart:1367 E/flutter (25773): #28 RenderViewport.performLayout package:flutter/…/rendering/viewport.dart:1285 E/flutter (25773): #29 RenderObject.layout package:flutter/…/rendering/object.dart:1724 E/flutter (25773): #30 RenderProxyBoxMixin.performLayout (packa ...

here is the flutter doctor -v output [√] Flutter (Channel stable, v1.12.13+hotfix.7, on Microsoft Windows [Version 10.0.18362.592], locale bg-BG) • Flutter version 1.12.13+hotfix.7 at C:\flutter • Framework revision 9f5ff2306b (2 weeks ago), 2020-01-26 22:38:26 -0800 • Engine revision a67792536c • Dart version 2.7.0

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.2) • Android SDK at C:\Users\Machkonti\AppData\Local\Android\sdk • Android NDK location not configured (optional; useful for native profiling support) • Platform android-29, build-tools 29.0.2 • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03) • All Android licenses accepted.

[√] Android Studio (version 3.5) • Android Studio at C:\Program Files\Android\Android Studio • Flutter plugin version 43.0.1 • Dart plugin version 191.8593 • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)

[√] VS Code (version 1.42.0) • VS Code at C:\Users\Machkonti\AppData\Local\Programs\Microsoft VS Code • Flutter extension version 3.8.1

[√] Connected device (1 available) • Android SDK built for x86 • emulator-5554 • android-x86 • Android 10 (API 29) (emulator)

main.dart

Future main() async { WidgetsFlutterBinding.ensureInitialized(); ... Admob.initialize('ca-app-pub-8775944520232965~3586181518'); runApp(MyApp(...)); }

SecondScreen.dart

.... ListView.builder( physics: BouncingScrollPhysics(), itemCount: snapshot.data.length, itemBuilder: (BuildContext context, int index) { if (index != 0 && index % 6 == 0) { return Column( children: <Widget>[ Container( margin: EdgeInsets.only(bottom: 20.0), child: AdmobBanner( adUnitId: getBannerAdUnitId(), adSize: bannerSize, listener: (AdmobAdEvent event, Map<String, dynamic> args) { handleEvent(event, args, 'Banner'); }, ), ), ], ); } ...

Next question is, how can i determinate where is the problem of loading and real banner? I recieve Error failedToLoad and errorcode: 0 nothing to point me to a problem

machkonti avatar Feb 11 '20 14:02 machkonti

Ok, it seems there is a progress in error reporting ... now i recieve the following as an debug string in console:

E/AccessibilityBridge(16330): VirtualView node must not be the root node. W/Ads (16330): Not retrying to fetch app settings I/Ads (16330): Ad failed to load : 3 I/Ads (16330): Use RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList("A71D77ED6774263FDE5DC34BCCE67BFF") to get test ads on this device. I/flutter (16330): Admob Banner failed to load. :( {errorCode: 3} Banner

machkonti avatar Feb 13 '20 17:02 machkonti

@machkonti

The first error (E/AccessibilityBridge(16330)): https://github.com/flutter/flutter/issues/45928 (I don't know why this error would be affecting you though.)

Error code 3: The ad request was successful, but no ad was returned due to lack of ad inventory. ( https://stackoverflow.com/questions/33566485/failed-to-load-ad-3 )

RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList("A71D77ED6774263FDE5DC34BCCE67BFF") to get test ads on this device. @kmcgill88 Do you know what this error is? ^

edeuss avatar Feb 14 '20 17:02 edeuss

i have the same error... what happened?

ajosecueto avatar Feb 27 '20 00:02 ajosecueto

Same error. How did you fix it?

maheshkumar2150 avatar May 24 '20 10:05 maheshkumar2150

Facing same issue.... any solutions ?

azzamjafri avatar Jun 26 '20 11:06 azzamjafri

Still have the same error here

Renkon117 avatar Oct 08 '20 06:10 Renkon117

RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList("A71D77ED6774263FDE5DC34BCCE67BFF") to get test ads on this device.

@EliasDeuss @ajosecueto @maheshkumar2150 @azzamjafri @Renkon117 guys, it is not a bug but a feature) this log just tells you what test-id to use, from documentation: https://developers.google.com/admob/android/test-ads?hl=it#add_your_test_device

KATUNATOR avatar Oct 09 '20 08:10 KATUNATOR

I solved this problem by updating RequestConfiguration with the testDeviceIds

const List<String> testDeviceIds = ['289C....F6'];

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  MobileAds.instance.initialize();

  // thing to add
  RequestConfiguration configuration = RequestConfiguration(
    testDeviceIds: testDeviceIds,
  );
  MobileAds.instance.updateRequestConfiguration(configuration);

  await Firebase.initializeApp();
  runApp(MyApp());
}

How to get TestDeviceIDs

If you want to test ads in your app as you're developing.

  1. Load your ads-integrated app and make an ad request.
  2. Check the logcat output for a message that looks like the one below, which shows you your device ID and how to add it as a test device: Use RequestConfiguration.Builder().setTestDeviceIds(Arrays.asList("289.......E6") to get test ads on this device.
  3. Add the device ID that your logcat gave you in the terminal, and use it as testDeviceId

ThuyenPV avatar Sep 18 '22 02:09 ThuyenPV