Flutter项目集成Firebase后initializeApp调用报PlatformException问题求助
针对你遇到的这个错误,结合你手动修改过build.gradle的情况,按以下步骤排查修复:
回退build.gradle的手动修改
Firebase CLI已经自动完成了Android端的配置,手动修改很可能破坏了依赖或插件的正确配置。将项目根目录下的build.gradle和android/app/build.gradle恢复到CLI集成后的状态(如果有版本控制可以直接回滚,没有的话对比Firebase官方的Flutter集成配置示例修正)。确保google-services.json配置正确
确认google-services.json文件已正确放置在android/app目录下,且是从Firebase控制台下载的对应项目文件。如果文件损坏或不匹配,重新下载替换。使用CLI生成的DefaultFirebaseOptions初始化
CLI集成后会自动生成firebase_options.dart文件,初始化时需要传入对应平台的配置,修改main.dart代码:import 'firebase_options.dart'; Future<void> main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); runApp(const ProviderScope(child: DealDiligence())); }之前直接调用
Firebase.initializeApp()可能导致配置缺失,引发空值错误。清理缓存并重新构建
执行以下命令清理项目缓存,避免旧配置残留:flutter clean flutter pub get cd android && ./gradlew clean cd .. && flutter run检查Gradle与Android SDK版本兼容性
确认项目的Gradle版本(根目录gradle/wrapper/gradle-wrapper.properties中的distributionUrl)和Android SDK编译版本(android/app/build.gradle中的compileSdkVersion)符合Firebase的要求(建议Gradle 7.0+,compileSdkVersion 31+)。验证AndroidManifest.xml配置
检查android/app/src/main/AndroidManifest.xml中是否包含必要的配置:- 确保添加了INTERNET权限:
<uses-permission android:name="android.permission.INTERNET"/> - 确认application标签下是否保留了CLI自动添加的Firebase相关meta-data(如果手动删除过,需要补回)。
- 确保添加了INTERNET权限:
内容的提问来源于stack exchange,提问作者LostTexan

