My Android emulator often shows a E/eglCodecCommon(21959): glUtilsParamSize: unknow param 0x000085b5, specially for web contents.
While showing an ads banner (plugin firebase_admob), the debug console keep showing thousands of this error:

It would be nice if there is a setting for us to filter what kind of log we want to see. For example, in settings.json:
"dart.filterDebugWindow": ["eglCodecCommon", "Ads"]
Would filter those lines while debugging:

It would be nicer if we could colorize it (E/ in red, I/ in blue, W/ in orange, etc.)
@devoncarew @pq does IntelliJ already do anything to filter things like this? I can add a customisable filter, but it'd make sense to have the same behaviour if we can (though we may be more restricted in VS Code, for ex. not being able to add any nice UI around the debug console).
We don't have a feature like this, but a natural place to put it would be somewhere in the run / debug consoles. But, perhaps these extremely noisy messages are rare? Is there some other fix we (or the flutter plugin) should apply?
Ok, I looked into this more - it seems that Flutter takes the raw logcat output, but filters it to only include certain messages:
I can't understand why all of the above would get through though - it doesn't seem like it matches any of the patterns (there are some exceptions, like during a fatal crash - but it doesn't seem like that should trigger here either).
@JCKodel can you reliably reproduce this? Can you give me instructions for exactly what you're doing to see if I can repro here? Thanks!
1) flutter create log_test
2) Added firebase_admob: ^0.9.0+7 to pubspec.yaml
3) Added <meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-0592784782375028~9340585015"/> to Android manifest (inside <application/>)
4) Put FirebaseAdMob.instance.initialize(appId: "ca-app-pub-0592784782375028~9340585015"); inside main (you'll have to manually import the package because VSCode refuses to find the import automatically (see https://github.com/Dart-Code/Dart-Code/issues/1926)).
5) Insert this code anywhere before main:
MobileAdTargetingInfo targetingInfo = MobileAdTargetingInfo(
keywords: <String>['flutterio', 'beautiful apps'],
contentUrl: 'https://flutter.io',
childDirected: false,
);
BannerAd myBanner = BannerAd(
adUnitId: "ca-app-pub-0592784782375028/4212381411",
size: AdSize.smartBanner,
targetingInfo: targetingInfo,
listener: (e) {
if (e == MobileAdEvent.loaded) {
myBanner.show();
}
});
6) Inside your build method, insert myBanner.load(); (I know this isn't the right place to do it, is just for testing)
7) Run the app on the Android x86 Emulator (the one that come with Android Studio. I'm using Nexus 5 with Google Play)
The app should initialize and an ad banner will be loaded at the bottom.
This is my debug output: Notice that there is usefull information (the error saying GoogleService failed to initialize), that's why I'm asking for a filter I think this kind of information should not be removed (catlog for our process is VERY usefull, but we need to filter spam messages).
Launching lib\main.dart on Android SDK built for x86 in debug mode...
Note: C:\Users\jckod\AppData\Roaming\Pub\Cache\hosted\pub.dartlang.org\firebase_admob-0.9.0+7\android\src\main\java\io\flutter\plugins\firebaseadmob\AdRequestBuilderFactory.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Built build\app\outputs\apk\debug\app-debug.apk.
I/WebViewFactory(29898): Loading com.android.chrome version 76.0.3809.111 (code 380911117)
I/cr_LibraryLoader(29898): Time to load native libraries: 13 ms (timestamps 5970-5983)
I/chromium(29898): [INFO:library_loader_hooks.cc(51)] Chromium logging enabled: level = 0, default verbosity = 0
I/cr_LibraryLoader(29898): Expected native library version number "76.0.3809.111", actual native library version number "76.0.3809.111"
I/cr_BrowserStartup(29898): Initializing chromium process, singleProcess=true
W/ResourceType(29898): Failure getting entry for 0x7f13052b (t=18 e=1323) (error -2147483647)
E/chromium(29898): [ERROR:filesystem_posix.cc(89)] stat /data/user/0/com.example.log_test/cache/WebView/Crashpad: No such file or directory (2)
E/chromium(29898): [ERROR:filesystem_posix.cc(62)] mkdir /data/user/0/com.example.log_test/cache/WebView/Crashpad: No such file or directory (2)
W/cr_media(29898): Requires BLUETOOTH permission
E/libEGL (29898): validate_display:99 error 3008 (EGL_BAD_DISPLAY)
D/ (29898): HostConnection::get() New Host Connection established 0x88dba4c0, tid 30024
E/chromium(29898): [ERROR:gl_surface_egl.cc(343)] eglChooseConfig failed with error EGL_SUCCESS
D/EGL_emulation(29898): eglCreateContext: 0xa474cd20: maj 2 min 0 rcv 2
D/EGL_emulation(29898): eglMakeCurrent: 0xa474cd20: ver 2 0 (tinfo 0x88da8330)
I/Ads (29898): This request is sent from a test device.
E/chromium(29898): [ERROR:gl_surface_egl.cc(343)] eglChooseConfig failed with error EGL_SUCCESS
I/VideoCapabilities(29898): Unsupported profile 4 for video/mp4v-es
W/cr_MediaCodecUtil(29898): HW encoder for video/avc is not available on this device.
D/EGL_emulation(29898): eglCreateContext: 0xa474daa0: maj 2 min 0 rcv 2
D/EGL_emulation(29898): eglMakeCurrent: 0xa474daa0: ver 2 0 (tinfo 0x88da8330)
I/DynamiteModule(29898): Considering local module com.google.android.gms.ads.dynamite:0 and remote module com.google.android.gms.ads.dynamite:20461
I/DynamiteModule(29898): Selected remote version of com.google.android.gms.ads.dynamite, version >= 20461
V/DynamiteModule(29898): Dynamite loader version >= 2, using loadModule2NoCrashUtils
E/FA (29898): GoogleService failed to initialize, status: 10, Missing google app id value from from string resources with name google_app_id.
I/FA (29898): App measurement is starting up, version: 16250
I/FA (29898): To enable debug logging run: adb shell setprop log.tag.FA VERBOSE
I/FA (29898): To enable faster debug mode event logging run:
I/FA (29898): adb shell setprop debug.firebase.analytics.app com.example.log_test
E/FA (29898): Missing google_app_id. Firebase Analytics disabled. See https://goo.gl/NAOOOI
E/FA (29898): Uploading is not possible. App measurement disabled
D/zzdx (29898): File /data/user/0/com.example.log_test/cache/1557357152169.dex not found. No need for deletion
W/art (29898): Before Android 4.1, method double java.util.concurrent.ThreadLocalRandom.internalNextDouble(double, double) would have incorrectly overridden the package-private method in java.util.Random
W/art (29898): Before Android 4.1, method int java.util.concurrent.ThreadLocalRandom.internalNextInt(int, int) would have incorrectly overridden the package-private method in java.util.Random
W/art (29898): Before Android 4.1, method long java.util.concurrent.ThreadLocalRandom.internalNextLong(long, long) would have incorrectly overridden the package-private method in java.util.Random
W/Ads (29898): Not retrying to fetch app settings
D/EGL_emulation(29898): eglMakeCurrent: 0xa8e857e0: ver 2 0 (tinfo 0x905ff120)
I/FA (29898): Tag Manager is not found and thus will not be used
E/FA (29898): Missing google_app_id. Firebase Analytics disabled. See https://goo.gl/NAOOOI
I/art (29898): Rejecting re-init on previously-failed class java.lang.Class<androidx.core.view.ViewCompat$OnUnhandledKeyEventListenerWrapper>: java.lang.NoClassDefFoundError: Failed resolution of: Landroid/view/View$OnUnhandledKeyEventListener;
I/art (29898): at boolean androidx.core.view.ViewCompat.isAttachedToWindow(android.view.View) (ViewCompat.java:3049)
I/art (29898): at void com.google.android.gms.internal.ads.zzbbf.zzzw() (com.google.android.gms:play-services-ads@@18.1.1:106)
I/art (29898): at void com.google.android.gms.internal.ads.zzcfy.onAdImpression() (com.google.android.gms:play-services-ads@@18.1.1:3)
I/art (29898): at void com.google.android.gms.internal.ads.zzbmr.zzp(java.lang.Object) (com.google.android.gms:play-services-ads@@18.1.1:2)
I/art (29898): at void com.google.android.gms.internal.ads.zzbov.run() (com.google.android.gms:play-services-ads@@18.1.1:2)
I/art (29898): at void com.google.android.gms.internal.ads.zzdbx.execute(java.lang.Runnable) (com.google.android.gms:play-services-ads@@18.1.1:3)
I/art (29898): at void com.google.android.gms.internal.ads.zzawy.execute(java.lang.Runnable) (com.google.android.gms:play-services-ads@@18.1.1:4)
I/art (29898): at void com.google.android.gms.internal.ads.zzbos.zza(com.google.android.gms.internal.ads.zzbou) (com.google.android.gms:play-services-ads@@18.1.1:16)
I/art (29898): at void com.google.android.gms.internal.ads.zzbmo.onAdImpression() (com.google.android.gms:play-services-ads@@18.1.1:5)
I/art (29898): at void com.google.android.gms.internal.ads.zzbjl.zzafg() (com.google.android.gms:play-services-ads@@18.1.1:19)
I/art (29898): at void com.google.android.gms.internal.ads.zzbjl.zza(com.google.android.gms.internal.ads.zzpi) (com.google.android.gms:play-services-ads@@18.1.1:12)
I/art (29898): at void com.google.android.gms.internal.ads.zzbqe.zzp(java.lang.Object) (com.google.android.gms:play-services-ads@@18.1.1:2)
I/art (29898): at void com.google.android.gms.internal.ads.zzbov.run() (com.google.android.gms:play-services-ads@@18.1.1:2)
I/art (29898): at void com.google.android.gms.internal.ads.zzdbx.execute(java.lang.Runnable) (com.google.android.gms:play-services-ads@@18.1.1:3)
I/art (29898): at void com.google.android.gms.internal.ads.zzawy.execute(java.lang.Runnable) (com.google.android.gms:play-services-ads@@18.1.1:4)
I/art (29898): at void com.google.android.gms.internal.ads.zzbos.zza(com.google.android.gms.internal.ads.zzbou) (com.google.android.gms:play-services-ads@@18.1.1:16)
I/art (29898): at void com.google.android.gms.internal.ads.zzbqb.zza(com.google.android.gms.internal.ads.zzpi) (com.google.android.gms:play-services-ads@@18.1.1:6)
I/art (29898): at void com.google.android.gms.internal.ads.zzph.zzbm(int) (com.google.android.gms:play-services-ads@@18.1.1:136)
I/art (29898): at void com.google.android.gms.internal.ads.zzph.onGlobalLayout() (com.google.android.gms:play-services-ads@@18.1.1:79)
I/art (29898): at void android.view.ViewTreeObserver.dispatchOnGlobalLayout() (ViewTreeObserver.java:912)
I/art (29898): at void android.view.ViewRootImpl.performTraversals() (ViewRootImpl.java:2107)
I/art (29898): at void android.view.ViewRootImpl.doTraversal() (ViewRootImpl.java:1246)
I/art (29898): at void android.view.ViewRootImpl$TraversalRunnable.run() (ViewRootImpl.java:6301)
I/art (29898): at void android.view.Choreographer$CallbackRecord.run(long) (Choreographer.java:871)
I/art (29898): at void android.view.Choreographer.doCallbacks(int, long) (Choreographer.java:683)
I/art (29898): at void android.view.Choreographer.doFrame(long, int) (Choreographer.java:619)
I/art (29898): at void android.view.Choreographer$FrameDisplayEventReceiver.run() (Choreographer.java:857)
I/art (29898): at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:751)
I/art (29898): at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:95)
I/art (29898): at void android.os.Looper.loop() (Looper.java:154)
I/art (29898): at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6077)
I/art (29898): at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
I/art (29898): at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:866)
I/art (29898): at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:756)
I/art (29898): Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.View$OnUnhandledKeyEventListener" on path: DexPathList[[zip file "/data/app/com.example.log_test-1/base.apk"],nativeLibraryDirectories=[/data/app/com.example.log_test-1/lib/x86, /data/app/com.example.log_test-1/base.apk!/lib/x86, /system/lib, /vendor/lib]]
I/art (29898): at java.lang.Class dalvik.system.BaseDexClassLoader.findClass(java.lang.String) (BaseDexClassLoader.java:56)
I/art (29898): at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String, boolean) (ClassLoader.java:380)
I/art (29898): at java.lang.Class java.lang.ClassLoader.loadClass(java.lang.String) (ClassLoader.java:312)
I/art (29898): at boolean androidx.core.view.ViewCompat.isAttachedToWindow(android.view.View) (ViewCompat.java:3049)
I/art (29898): at void com.google.android.gms.internal.ads.zzbbf.zzzw() (com.google.android.gms:play-services-ads@@18.1.1:106)
I/art (29898): at void com.google.android.gms.internal.ads.zzcfy.onAdImpression() (com.google.android.gms:play-services-ads@@18.1.1:3)
I/art (29898): at void com.google.android.gms.internal.ads.zzbmr.zzp(java.lang.Object) (com.google.android.gms:play-services-ads@@18.1.1:2)
I/art (29898): at void com.google.android.gms.internal.ads.zzbov.run() (com.google.android.gms:play-services-ads@@18.1.1:2)
I/art (29898): at void com.google.android.gms.internal.ads.zzdbx.execute(java.lang.Runnable) (com.google.android.gms:play-services-ads@@18.1.1:3)
I/art (29898): at void com.google.android.gms.internal.ads.zzawy.execute(java.lang.Runnable) (com.google.android.gms:play-services-ads@@18.1.1:4)
I/art (29898): at void com.google.android.gms.internal.ads.zzbos.zza(com.google.android.gms.internal.ads.zzbou) (com.google.android.gms:play-services-ads@@18.1.1:16)
I/art (29898): at void com.google.android.gms.internal.ads.zzbmo.onAdImpression() (com.google.android.gms:play-services-ads@@18.1.1:5)
I/art (29898): at void com.google.android.gms.internal.ads.zzbjl.zzafg() (com.google.android.gms:play-services-ads@@18.1.1:19)
I/art (29898): at void com.google.android.gms.internal.ads.zzbjl.zza(com.google.android.gms.internal.ads.zzpi) (com.google.android.gms:play-services-ads@@18.1.1:12)
I/art (29898): at void com.google.android.gms.internal.ads.zzbqe.zzp(java.lang.Object) (com.google.android.gms:play-services-ads@@18.1.1:2)
I/art (29898): at void com.google.android.gms.internal.ads.zzbov.run() (com.google.android.gms:play-services-ads@@18.1.1:2)
I/art (29898): at void com.google.android.gms.internal.ads.zzdbx.execute(java.lang.Runnable) (com.google.android.gms:play-services-ads@@18.1.1:3)
I/art (29898): at void com.google.android.gms.internal.ads.zzawy.execute(java.lang.Runnable) (com.google.android.gms:play-services-ads@@18.1.1:4)
I/art (29898): at void com.google.android.gms.internal.ads.zzbos.zza(com.google.android.gms.internal.ads.zzbou) (com.google.android.gms:play-services-ads@@18.1.1:16)
I/art (29898): at void com.google.android.gms.internal.ads.zzbqb.zza(com.google.android.gms.internal.ads.zzpi) (com.google.android.gms:play-services-ads@@18.1.1:6)
I/art (29898): at void com.google.android.gms.internal.ads.zzph.zzbm(int) (com.google.android.gms:play-services-ads@@18.1.1:136)
I/art (29898): at void com.google.android.gms.internal.ads.zzph.onGlobalLayout() (com.google.android.gms:play-services-ads@@18.1.1:79)
I/art (29898): at void android.view.ViewTreeObserver.dispatchOnGlobalLayout() (ViewTreeObserver.java:912)
I/art (29898): at void android.view.ViewRootImpl.performTraversals() (ViewRootImpl.java:2107)
I/art (29898): at void android.view.ViewRootImpl.doTraversal() (ViewRootImpl.java:1246)
I/art (29898): at void android.view.ViewRootImpl$TraversalRunnable.run() (ViewRootImpl.java:6301)
I/art (29898): at void android.view.Choreographer$CallbackRecord.run(long) (Choreographer.java:871)
I/art (29898): at void android.view.Choreographer.doCallbacks(int, long) (Choreographer.java:683)
I/art (29898): at void android.view.Choreographer.doFrame(long, int) (Choreographer.java:619)
I/art (29898): at void android.view.Choreographer$FrameDisplayEventReceiver.run() (Choreographer.java:857)
I/art (29898): at void android.os.Handler.handleCallback(android.os.Message) (Handler.java:751)
I/art (29898): at void android.os.Handler.dispatchMessage(android.os.Message) (Handler.java:95)
I/art (29898): at void android.os.Looper.loop() (Looper.java:154)
I/art (29898): at void android.app.ActivityThread.main(java.lang.String[]) (ActivityThread.java:6077)
I/art (29898): at java.lang.Object java.lang.reflect.Method.invoke!(java.lang.Object, java.lang.Object[]) (Method.java:-2)
I/art (29898): at void com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run() (ZygoteInit.java:866)
I/art (29898): at void com.android.internal.os.ZygoteInit.main(java.lang.String[]) (ZygoteInit.java:756)
I/art (29898):
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
Complete main.dart:
import 'package:flutter/material.dart';
import 'package:firebase_admob/firebase_admob.dart';
MobileAdTargetingInfo targetingInfo = MobileAdTargetingInfo(
keywords: <String>['flutterio', 'beautiful apps'],
contentUrl: 'https://flutter.io',
childDirected: false,
);
BannerAd myBanner = BannerAd(
adUnitId: "ca-app-pub-0592784782375028/4212381411",
size: AdSize.smartBanner,
targetingInfo: targetingInfo,
listener: (e) {
if (e == MobileAdEvent.loaded) {
myBanner.show();
}
});
void main() {
FirebaseAdMob.instance.initialize(appId: "ca-app-pub-0592784782375028~9340585015");
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
myBanner.load();
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
// This is the theme of your application.
//
// Try running your application with "flutter run". You'll see the
// application has a blue toolbar. Then, without quitting the app, try
// changing the primarySwatch below to Colors.green and then invoke
// "hot reload" (press "r" in the console where you ran "flutter run",
// or simply save your changes to "hot reload" in a Flutter IDE).
// Notice that the counter didn't reset back to zero; the application
// is not restarted.
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
class MyHomePage extends StatefulWidget {
MyHomePage({Key key, this.title}) : super(key: key);
// This widget is the home page of your application. It is stateful, meaning
// that it has a State object (defined below) that contains fields that affect
// how it looks.
// This class is the configuration for the state. It holds the values (in this
// case the title) provided by the parent (in this case the App widget) and
// used by the build method of the State. Fields in a Widget subclass are
// always marked "final".
final String title;
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage> {
int _counter = 0;
void _incrementCounter() {
setState(() {
// This call to setState tells the Flutter framework that something has
// changed in this State, which causes it to rerun the build method below
// so that the display can reflect the updated values. If we changed
// _counter without calling setState(), then the build method would not be
// called again, and so nothing would appear to happen.
_counter++;
});
}
@override
Widget build(BuildContext context) {
// This method is rerun every time setState is called, for instance as done
// by the _incrementCounter method above.
//
// The Flutter framework has been optimized to make rerunning build methods
// fast, so that you can just rebuild anything that needs updating rather
// than having to individually change instances of widgets.
return Scaffold(
appBar: AppBar(
// Here we take the value from the MyHomePage object that was created by
// the App.build method, and use it to set our appbar title.
title: Text(widget.title),
),
body: Center(
// Center is a layout widget. It takes a single child and positions it
// in the middle of the parent.
child: Column(
// Column is also layout widget. It takes a list of children and
// arranges them vertically. By default, it sizes itself to fit its
// children horizontally, and tries to be as tall as its parent.
//
// Invoke "debug painting" (press "p" in the console, choose the
// "Toggle Debug Paint" action from the Flutter Inspector in Android
// Studio, or the "Toggle Debug Paint" command in Visual Studio Code)
// to see the wireframe for each widget.
//
// Column has various properties to control how it sizes itself and
// how it positions its children. Here we use mainAxisAlignment to
// center the children vertically; the main axis here is the vertical
// axis because Columns are vertical (the cross axis would be
// horizontal).
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'You have pushed the button this many times:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.display1,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: Icon(Icons.add),
), // This trailing comma makes auto-formatting nicer for build methods.
);
}
}
Complete AndroidManifest.xml:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.log_test">
<!-- io.flutter.app.FlutterApplication is an android.app.Application that
calls FlutterMain.startInitialization(this); in its onCreate method.
In most cases you can leave this as-is, but you if you want to provide
additional functionality it is fine to subclass or reimplement
FlutterApplication and put your custom class here. -->
<application
android:name="io.flutter.app.FlutterApplication"
android:label="log_test"
android:icon="@mipmap/ic_launcher">
<activity
android:name=".MainActivity"
android:launchMode="singleTop"
android:theme="@style/LaunchTheme"
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|layoutDirection|fontScale|screenLayout|density|uiMode"
android:hardwareAccelerated="true"
android:windowSoftInputMode="adjustResize">
<!-- This keeps the window background of the activity showing
until Flutter renders its first frame. It can be removed if
there is no splash screen (such as the default splash screen
defined in @style/LaunchTheme). -->
<meta-data
android:name="io.flutter.app.android.SplashScreenUntilFirstFrame"
android:value="true" />
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<meta-data android:name="com.google.android.gms.ads.APPLICATION_ID" android:value="ca-app-pub-0592784782375028~9340585015"/>
</application>
</manifest>
BTW, my machine is a Windows 10 with GeForce GTX970 (running old drivers because nVidia nerfs performance in new drivers for old boards) and the emulator is run with this command line:
emulator -avd N -writable-system -shell -logcat-output con -gpu host
BTW: I also tried the above command without -logcat-output, the results remains the same.
After some minutes: https://gist.github.com/JCKodel/a5d9e4d750ce00a7460bbdcf6914a918
Had a quick look at this again, trying to figure out why this stuff was logging despite not matching the regex:
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
E/eglCodecCommon(29898): glUtilsParamSize: unknow param 0x000085b5
Turns out there's also a regex for the process ID of the app on the device, and anything from that process ID (29898) in the log is also allowed through.
Although we could add a filter in VS Code, I think this may be better addressed in Flutter, since if you run flutter run from the terminal, you get all the same spammy output - and it feels like it's probably unwanted there too (at least if you're not running with -v). I've opened https://github.com/flutter/flutter/issues/42849 about this - it's not clear to me if the issue is with the plugin writing too much, or Flutter not filtering enough. I'll leave this open for now until there's some response there.
Hi Danny,
Just my 2 cents-worth here. I have recently implemented Firebase performance monitoring in my app and I now get the same warning messages constantly in the VSCode debug console. This makes it a nightmare when trying to debug using print statements to the console. It looks like there is no way to turn these off via Firebase - the following SO Q&A relates: https://stackoverflow.com/questions/55510223/firebaseremoteconfig-error-no-value-of-type-string-exists-for-parameter-key
Wish I never switched on performance monitoring :-(
It appears the only way people are getting around this is to use filter/folding option provided by Android Studio Logcat and pidcat. I don't use either of these so would be very useful to have some form of filtering in VSCode debug console.
@GrahamDi I don't think filtering in VS Code is the ideal solution here - running from the terminal with flutter run will show the same verbose output. I opened an issue at https://github.com/flutter/flutter/issues/42849 about this, since I think it makes more sense for the default output to be less verbose so all clients (including terminal) have more reasonable output.
Hi Danny,
Ok, thanks. Makes sense.
I will work on removing Firebase perf Monitoring and Remote Config from my app instead :-)
Any update? Still facing these messages
@erperejildo see https://github.com/Dart-Code/Dart-Code/issues/1980#issuecomment-551523986.
@erperejildo see #1980 (comment).
but not updates on that, right?
There haven't been any updates posted on that issue, but I don't know if the issue has been discussed by the team that works on that plugin. Subscribing to that issue is the best place for updates. It's difficult to fix directly in the VS Code extension as there's no ability to add filters to the UI nicely (that might be a reasonable VS Code request, but there was a previous request for a better logging API and it was dropped). Doing it with a setting that's a blacklist/regex may work, but it feels the wrong place to add it (since if it's spammy here, it will be the same for Flutter command line users).
I think the best option is if the plugin (or Flutter) generated less output when run in non-verbose modes, since that way running from the console would also improve.
I see exactly the same messages in Android Studio as well
Yeah, that's why I think improving this in Flutter/the plugin is the best option.
Android Studio does have more flexible APIs than VS Code though, so if VS Code had a nice filtering API for the debug console, it might be possible that both editors could then add filters in their consoles (this would be give more functionality than simply removing the output from Flutter, since you could customize what you see). I'm not sure if VS Code is likely to get the ability to add filters though, I think it still aims to be a lightweight editor rather than a big IDE with all features.
Just to add - I've tried using most of the admob plugins available including the firebase_admob, all have the same extreme verbose logging turned on by default. It's not a plugin issue - it needs to be filtered out in flutter itself.

Almost 7 months and everything stays the same... it's impossible to work with so many trash.
How hard would be to create a special "debug console" output panel? One with filter? It will be impossible to filter any possible extension from Flutter, so WE NEED FILTER ON VSCODE, it DOES make sense.
How hard would be to create a special "debug console" output panel? One with filter?
Output to the Debug Console comes from the debug adapter using specific events ("OutputEvents"). These are not consumable by extensions in the client, so in order to show them in another panel we would need to send a copy of all of the output from the debug adapter. A better solution might be to send the filter into the debug adapter and filter it there (however that means it wouldn't show in logs etc. either).
Whilst that's not insurmountable, it's not clear that this would be the best solution. People using Flutter from the terminal are seeing this output too, so having it filtered in Flutter would solve the issue for more users.
Similarly, if it was to be handled in the editor, it would be much better for VS Code to have a filter in the Debug Console (like it does for Problems view, etc.) so that all languages/users can benefit from it rather than it being specific to Flutter apps.
I'm not against having something here, but I think implementing it in the extension here should be a last resort if it seems the other options aren't going to happen.
Looks like there may be a filter coming to the Debug Console:
https://github.com/microsoft/vscode/pull/102704
https://streamable.com/tvatmz
I've also opened an issue about collapsing identical lines that I think would help too. Please 馃憤 !
The next version of VS Code (and current Insiders release) includes a filter in the debug console:


It's not a perfect fix, though there's still an open Flutter issue about the amount of logging from ads (https://github.com/flutter/flutter/issues/42849). I don't think there's anything to do in Dart-Code now though, so closing this as fixed upstream.
Most helpful comment
Almost 7 months and everything stays the same... it's impossible to work with so many trash.
How hard would be to create a special "debug console" output panel? One with filter? It will be impossible to filter any possible extension from Flutter, so WE NEED FILTER ON VSCODE, it DOES make sense.