Flutter项目Supabase初始化失败编译报错求助
解决Supabase Flutter初始化编译失败问题
问题现象
调试Flutter应用时,Supabase初始化触发编译错误,导致Gradle构建失败,无法正常启动应用。
错误日志
Launching lib\main.dart on ONEPLUS A3010 in debug mode... /C:/Users/saaho/AppData/Local/Pub/Cache/hosted/pub.dev/supabase_flutter-1.0.0-dev.1/lib/src/supabase_auth.dart:43:3: 错误:未找到类型 'GotrueSubscription'。 GotrueSubscription? _authSubscription; ^^^^^^^^^^^^^^^^^^ /C:/Users/saaho/AppData/Local/Pub/Cache/hosted/pub.dev/supabase_flutter-1.0.0-dev.1/lib/src/supabase_auth.dart:303:5: 错误:未找到类型 'AuthOptions'。 AuthOptions? options, ^^^^^^^^^^^ /C:/Users/saaho/AppData/Local/Pub/Cache/hosted/pub.dev/supabase_flutter-1.0.0-dev.1/lib/src/supabase_auth.dart:43:3: 错误:'GotrueSubscription' 不是类型。 GotrueSubscription? _authSubscription; ^^^^^^^^^^^^^^^^^^ /C:/Users/saaho/AppData/Local/Pub/Cache/hosted/pub.dev/supabase_flutter-1.0.0-dev.1/lib/src/supabase_auth.dart:111:16: 错误:'GotrueError' 不是类型。 } on GotrueError catch (error) { ^^^^^^^^^^^ /C:/Users/saaho/AppData/Local/Pub/Cache/hosted/pub.dev/supabase_flutter-1.0.0-dev.1/lib/src/supabase_auth.dart:91:58: 错误:'onAuthStateChange' 不是函数或方法,无法调用。 Supabase.instance.client.auth.onAuthStateChange((event, session) { ^^^^^^^^^^^^^^^^^ /C:/Users/saaho/AppData/Local/Pub/Cache/hosted/pub.dev/supabase_flutter-1.0.0-dev.1/lib/src/supabase_auth.dart:109:68: 错误:类 'AuthResponse' 未定义 getter 'data'。 - 'AuthResponse' 来自 'package:gotrue/src/types/auth_response.dart' ('/C:/Users/saaho/AppData/Local/Pub/Cache/hosted/pub.dev/gotrue-1.11.2/lib/src/types/auth_response.dart')。 请尝试将名称更正为现有getter的名称,或定义一个名为 'data' 的getter或字段。 _instance._initialSessionCompleter.complete(response.data); ^^^^ /C:/Users/saaho/AppData/Local/Pub/Cache/hosted/pub.dev/supabase_flutter-1.0.0-dev.1/lib/src/supabase_auth.dart:282:10: 错误:'GotrueError' 不是类型。 } on GotrueError catch (error) { ^^^^^^^^^^^ /C:/Users/saaho/AppData/Local/Pub/Cache/hosted/pub.dev/supabase_flutter-1.0.0-dev.1/lib/src/supabase_auth.dart:303:5: 错误:'AuthOptions' 不是类型。 AuthOptions? options, ^^^^^^^^^^^ /C:/Users/saaho/AppData/Local/Pub/Cache/hosted/pub.dev/supabase_flutter-1.0.0-dev.1/lib/src/supabase_auth.dart:305:23: 错误:类 'GoTrueClient' 未定义方法 'signIn'。 - 'GoTrueClient' 来自 'package:gotrue/src/gotrue_client.dart' ('/C:/Users/saaho/AppData/Local/Pub/Cache/hosted/pub.dev/gotrue-1.11.2/lib/src/gotrue_client.dart')。 请尝试将名称更正为现有方法的名称,或定义一个名为 'signIn' 的方法。 final res = await signIn( ^^^^^^ Target kernel_snapshot failed: Exception FAILURE: Build failed with an exception. * 位置: Script 'C:\flutter dev\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 1201 * 错误原因: 任务 ':app:compileFlutterBuildDebug' 执行失败。 > 进程 'command 'C:\flutter dev\flutter\bin\flutter.bat'' 以非零退出值1结束 * 建议: > 使用 --stacktrace 选项获取堆栈跟踪。 > 使用 --info 或 --debug 选项获取更多日志输出。 > 使用 --scan 选项获取完整洞察。 * 获取更多帮助:https://help.gradle.org BUILD FAILED in 4m 25s Exception: Gradle task assembleDebug failed with exit code 1 Exited (sigterm)
环境配置
- Flutter: ^3.10.2
- Dart: ^3.0.2
初始化代码
import 'package:flutter/material.dart'; import 'package:hive_flutter/hive_flutter.dart'; import 'package:supabase_flutter/supabase_flutter.dart'; void main () async { WidgetsFlutterBinding.ensureInitialized(); await Supabase.initialize( url: 'https://dwjxxxxxxxxxxxxxxxxxxxxx.supabase.co', anonKey: 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', ); await Hive.initFlutter(); await Hive.openBox("MainBox"); runApp(const MyApp()); }
解决方案
错误原因
使用的supabase_flutter: 1.0.0-dev.1是开发预览版本,该版本的API与依赖的gotrue: 1.11.2稳定版存在严重兼容性问题,导致类型、方法不匹配,触发编译错误。
修复步骤
- 替换为稳定版依赖:打开项目根目录的
pubspec.yaml,将supabase_flutter的版本修改为最新稳定版(例如supabase_flutter: ^1.10.15,该版本与Flutter 3.10.2兼容)。 - 清理缓存并重新获取依赖:
- 执行命令:
flutter clean - 执行命令:
flutter pub get
- 执行命令:
- 重新运行项目:执行
flutter run启动应用,即可正常完成Supabase初始化。
内容的提问来源于stack exchange,提问作者Saaho Knight
相关产品推荐
相关产品推荐

