Flutter中Firebase初始化报PlatformException(null-error)问题求助
Flutter Firebase.initializeApp 异常解决
错误信息
E/flutter ( 7704): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(null-error, Host platform returned null value for non-null return value., null, null) E/flutter ( 7704): #0 FirebaseCoreHostApi.optionsFromResource (package:firebase_core_platform_interface/src/pigeon/messages.pigeon.dart:248:7) E/flutter ( 7704): <asynchronous suspension> E/flutter ( 7704): #1 MethodChannelFirebase.initializeApp (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:89:25) E/flutter ( 7704): <asynchronous suspension> E/flutter ( 7704): #2 Firebase.initializeApp (package:firebase_core/src/firebase.dart:43:31) E/flutter ( 7704): <asynchronous suspension> E/flutter ( 7704): #3 main (package:vendorapp/main.dart:6:3) E/flutter ( 7704): <asynchronous suspension>
已配置的Gradle文件
app/build.gradle
apply plugin: 'com.google.gms.google-services' apply plugin: 'com.android.application' apply plugin: 'kotlin-android'
project/build.gradle
ext.kotlin_version = '1.7.10' repositories { google() mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.4.0' classpath 'com.android.tools.build:gradle:7.3.0' } } allprojects { repositories { google() mavenCentral() }
解决步骤
检查配置文件位置
确认从Firebase控制台下载的google-services.json已正确放置在android/app目录下,文件内容需与当前项目的Firebase配置完全匹配。调整插件顺序
com.google.gms.google-services插件必须放在最后加载,修改app/build.gradle的插件部分:apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'com.google.gms.google-services'清理缓存并重构
执行以下命令清理项目缓存,避免旧配置干扰:flutter clean cd android && ./gradlew clean cd .. && flutter pub get flutter run修正project/build.gradle语法错误
原配置中多了一个闭合的},修正后完整配置:ext.kotlin_version = '1.7.10' buildscript { repositories { google() mavenCentral() } dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version" classpath 'com.google.gms:google-services:4.4.0' classpath 'com.android.tools.build:gradle:7.3.0' } } allprojects { repositories { google() mavenCentral() } }手动传入初始化参数
如果自动读取配置失败,可从Firebase控制台获取参数,手动初始化:import 'package:flutter/material.dart'; import 'package:firebase_core/firebase_core.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp( options: FirebaseOptions( apiKey: "你的API_KEY", appId: "你的APP_ID", messagingSenderId: "你的SENDER_ID", projectId: "你的PROJECT_ID", ), ); runApp(MyApp()); }检查依赖版本兼容性
确保pubspec.yaml中firebase_core的版本与Gradle、Kotlin版本兼容,建议使用最新稳定版:dependencies: firebase_core: ^2.15.0
内容的提问来源于stack exchange,提问作者Ezz
相关产品推荐
相关产品推荐

