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

Flutter读取Firebase数据时遇Dynamite模块及隐藏方法问题求助

Flutter 从Firebase读取数据时的DynamiteModule报错解决建议

报错信息

W/DynamiteModule( 6937): Local module descriptor class for com.google.android.gms.providerinstaller.dynamite not found.
I/DynamiteModule( 6937): Considering local module com.google.android.gms.providerinstaller.dynamite:0 and remote module com.google.android.gms.providerinstaller.dynamite:0
W/ProviderInstaller( 6937): Failed to load providerinstaller module: No acceptable module com.google.android.gms.providerinstaller.dynamite 
found. Local version is 0 and remote version is 0.
I/example.thrift( 6937): The ClassLoaderContext is a special shared library.
I/example.thrift( 6937): The ClassLoaderContext is a special shared library.
V/NativeCrypto( 6937): Registering com/google/android/gms/org/conscrypt/NativeCrypto's 295 native methods...
W/example.thrift( 6937): Accessing hidden method Ljava/security/spec/ECParameterSpec;->getCurveName()Ljava/lang/String; (greylist, reflection, allowed)
I/ProviderInstaller( 6937): Installed default security provider GmsCore_OpenSSL
W/example.thrift( 6937): Accessing hidden field Ljava/net/Socket;->impl:Ljava/net/SocketImpl; (greylist, reflection, allowed)
W/example.thrift( 6937): Accessing hidden method Ldalvik/system/CloseGuard;->get()Ldalvik/system/CloseGuard; (greylist,core-platform-api, linking, allowed)
W/example.thrift( 6937): Accessing hidden method Ldalvik/system/CloseGuard;->open(Ljava/lang/String;)V (greylist,core-platform-api, linking, allowed)
W/example.thrift( 6937): Accessing hidden method Ljava/security/spec/ECParameterSpec;->setCurveName(Ljava/lang/String;)V (greylist, reflection, allowed)
W/example.thrift( 6937): Accessing hidden method Ldalvik/system/BlockGuard;->getThreadPolicy()Ldalvik/system/BlockGuard$Policy; (greylist,core-platform-api, linking, allowed)
W/example.thrift( 6937): Accessing hidden method Ldalvik/system/BlockGuard$Policy;->onNetwork()V (greylist, linking, allowed)

相关AndroidManifest.xml片段

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.th">
   <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
   <application
        android:allowBackup="true"
        android:largeHeap="true"
        android:label="th"
        android:name="${applicationName}"
        android:icon="@mipmap/ic_launcher">

解决建议

  • 检查Google Play服务版本:确保测试设备/模拟器搭载最新版Google Play服务。模拟器优先选择带Google APIs的系统镜像,避免使用纯Android镜像。
  • 更新Firebase依赖:在项目pubspec.yaml中确认所有Firebase插件(如firebase_core、firebase_firestore)为稳定最新版,执行flutter pub upgrade完成更新。
  • 验证Google服务配置:确认android/app/google-services.json文件正确放置,同时检查gradle配置:
    • 根目录build.gradle中添加:classpath 'com.google.gms:google-services:4.3.15'(或最新兼容版本)
    • app目录build.gradle末尾添加:apply plugin: 'com.google.gms.google-services'
  • 补充网络权限:在AndroidManifest.xml中添加INTERNET权限:
    <uses-permission android:name="android.permission.INTERNET" />
    
  • 清理重建项目:依次执行flutter clean、flutter pub get,再重新运行应用。
  • 手动初始化ProviderInstaller:若上述步骤无效,可在Android端代码中手动触发初始化:
    import com.google.android.gms.security.ProviderInstaller;
    import com.google.android.gms.security.ProviderInstaller.ProviderInstallListener;
    
    // 在MainActivity的onCreate或自定义Application类中调用
    ProviderInstaller.installIfNeededAsync(this, new ProviderInstallListener() {
        @Override
        public void onProviderInstalled() {
            // 初始化完成,无需额外操作
        }
    
        @Override
        public void onProviderInstallFailed(int errorCode, Intent recoveryIntent) {
            // 可在此处理恢复逻辑,如弹出系统恢复对话框
        }
    });
    

内容的提问来源于stack exchange,提问作者Ibtissam

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 08:35:18