You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何消除Firebase的「获取App Check令牌出错」日志?

屏蔽Firebase App Check未安装的冗余警告日志(Flutter)

方法1:开发环境下直接通过Logcat过滤

在Android Studio的Logcat面板中,创建自定义过滤规则快速屏蔽该日志:

  • 点击Logcat右上角的「+」按钮添加新过滤
  • 在Log Tag输入框中填写 !LocalRequestInterceptor(感叹号表示排除该标签)
  • 保存过滤后,该标签的所有警告日志将不再显示

方法2:Flutter+Android原生代码拦截日志

通过MethodChannel调用Android原生代码,动态拦截指定标签的日志输出:

  1. Flutter端代码:
import 'package:flutter/foundation.dart';
import 'package:flutter/services.dart';
import 'package:firebase_core/firebase_core.dart';

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  
  // 仅在Android开发环境下启用日志拦截
  if (kDebugMode && Platform.isAndroid) {
    const MethodChannel('com.your.app/log_filter').invokeMethod(
      'suppressTag',
      {'tag': 'LocalRequestInterceptor'},
    );
  }
  
  runApp(const MyApp());
}
  1. Android原生MainActivity.kt代码:
import android.util.Log
import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodChannel

class MainActivity : FlutterActivity() {
    private val CHANNEL = "com.your.app/log_filter"

    override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
        super.configureFlutterEngine(flutterEngine)
        MethodChannel(flutterEngine.dartExecutor.binaryMessenger, CHANNEL).setMethodCallHandler { call, result ->
            if (call.method == "suppressTag") {
                val targetTag = call.argument<String>("tag") ?: return@setMethodCallHandler result.success(null)
                // 替换Log.w方法,过滤指定标签的警告日志
                val originalWarn = Log::w
                Log.w = { tag, message ->
                    if (tag != targetTag) {
                        originalWarn(tag, message)
                    }
                }
                result.success(null)
            } else {
                result.notImplemented()
            }
        }
    }
}

方法3:通过ProGuard规则屏蔽(支持开发/发布版)

在Android项目的app/proguard-rules.pro中添加以下规则,抑制指定类的警告日志输出:

# 精准抑制LocalRequestInterceptor的警告日志
-assumenosideeffects class com.google.firebase.installations.local.LocalRequestInterceptor {
    public static void w(java.lang.String, java.lang.String);
}

# 如果需要全局屏蔽所有Log.w警告(可选)
# -assumenosideeffects class android.util.Log {
#     public static int w(java.lang.String, java.lang.String);
# }

注意:若要在开发版生效,需在app/build.gradle的debug配置块中开启混淆:

android {
    buildTypes {
        debug {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
}

内容的提问来源于stack exchange,提问作者Dr-Bracket

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 17:40:20