Flutter Firebase-发布APK不同于调试APK



MyDebugAPK运行良好,但Release版本工作不正常。

当我运行Release版本时,我会得到以下日志:

I/flutter ( 4054): First Run
I/flutter ( 4054): [core/no-app] No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp()
I/flutter ( 4054): true
I/flutter ( 4054): [core/no-app] No Firebase App '[DEFAULT]' has been created - call Firebase.initializeApp()

正如您在这里看到的,我确实调用了Firebase.initializeApp()方法。

void main() => runApp(MyApp());
class MyApp extends StatefulWidget {
_AppState createState() => _AppState();
}
//Init Firebase Core
//Init App if Firebase Core init is Successfull
class _AppState extends State<MyApp> {
// Set default `_initialized` and `_error` state to false
bool _initialized = false;
bool _error = false;
// Define an async function to initialize FlutterFire
void initializeFlutterFire() async {
try {
// Wait for Firebase to initialize and set `_initialized` state to true
await Firebase.initializeApp();
setState(() {
_initialized = true;
});
} catch (e) {
// Set `_error` state to true if Firebase initialization fails
print(e);
setState(() {
_error = true;
});
}
}
@override
void initState() {
print("First Run");
initializeFlutterFire();
super.initState();
}
@override
Widget build(BuildContext context) {
// Show error message if initialization failed
if (_error) {
log("Show error message if initialization failed");
}
// Show a loader until FlutterFire is initialized
if (!_initialized) {
//return Loading();
log("Show Loader");
}
return MaterialApp(title: "Delorean", theme: _buildTheme(), home: SplashScreen());
}
}

我的flutter doctor -v返回时没有任何错误。我使用Build Gradle 3.5.3版本

我最终删除了_AppState类中的initializeFlutterFire()方法。

runApp(MyApp)之前,我在main方法中调用了Firebase。

void main() async {
WidgetsFlutterBinding.ensureInitialized(); //Allows to call binary libs before runApp 
await Firebase.initializeApp();
runApp(MyApp());
}

现在APK发布工作正常。

最新更新