启动画面卡住并且从不显示 main.dart Flutter

问题描述 投票:0回答:2

运行我的应用程序后,它会显示启动屏幕并且永远不会消失。即使我关闭并重新启动应用程序,甚至我通过

flutter run
运行
Flutter run lib/main.dart
也只显示启动画面,我还添加了
WidgetsFlutterBinding.ensureInitialized();
但仍然没有任何效果。尝试像
flutter clean
flutter pub get
这样的一切,我还没有使用任何启动画面包。请任何人都可以找出问题所在。 启动应用程序后,我在下面添加了我的
terminal

再次感谢。

W/FlutterActivityAndFragmentDelegate(18992): A splash screen was provided to Flutter, but this is deprecated. See flutter.dev/go/android-splash-migration for migration steps.
E/flutter (18992): [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 (18992): #0      FirebaseCoreHostApi.optionsFromResource (package:firebase_core_platform_interface/src/pigeon/messages.pigeon.dart:246:7)
E/flutter (18992): <asynchronous suspension>
E/flutter (18992): #1      MethodChannelFirebase.initializeApp (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:89:25)
E/flutter (18992): <asynchronous suspension>
E/flutter (18992): #2      Firebase.initializeApp (package:firebase_core/src/firebase.dart:43:31)
E/flutter (18992): <asynchronous suspension>
E/flutter (18992): #3      main (package:pdfscanner/main.dart:7:3)
E/flutter (18992): <asynchronous suspension>
E/flutter (18992): 

我的

main.dart
看起来像这样:

Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp();
  runApp(
    MaterialApp(
      debugShowCheckedModeBanner: false,
      title: "Document Scanner",
      home: HomePage(),
    ),
  );
}

这是我在android主流中的

build.gradle

   buildscript {
    ext.kotlin_version = '1.6.10'
    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath 'com.android.tools.build:gradle:7.1.2'
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
        classpath 'com.google.gms:google-services:4.3.15'
    }
}

allprojects {
    repositories {
        google()
        mavenCentral()
    }
}

rootProject.buildDir = '../build'
subprojects {
    project.buildDir = "${rootProject.buildDir}/${project.name}"
}
subprojects {
    project.evaluationDependsOn(':app')
}

task clean(type: Delete) {
    delete rootProject.buildDir
}
android flutter firebase dart splash-screen
2个回答
2
投票

此处为

terminal
上的第一个错误说

A splash screen was provided to Flutter, but this is deprecated. 
See flutter.dev/go/android-splash-migration for migration steps.

这是通过删除

<meta-data/>
上的
AndroidManifest.xml
片段来解决的,即:

          <meta-data
              android:name="io.flutter.embedding.android.NormalTheme"
              android:resource="@style/NormalTheme"
              />
          <meta-data
              android:name="io.flutter.embedding.android.SplashScreenDrawable"
              android:resource="@mipmap/launch_image" 
              />

对于

error
上的
terminal
的这些部分,即:

E/flutter (18992): #0      FirebaseCoreHostApi.optionsFromResource (package:firebase_core_platform_interface/src/pigeon/messages.pigeon.dart:246:7)
E/flutter (18992): <asynchronous suspension>
E/flutter (18992): #1      MethodChannelFirebase.initializeApp (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:89:25)
E/flutter (18992): <asynchronous suspension>
E/flutter (18992): #2      Firebase.initializeApp (package:firebase_core/src/firebase.dart:43:31)
E/flutter (18992): <asynchronous suspension>
E/flutter (18992): #3      main (package:pdfscanner/main.dart:7:3)
E/flutter (18992): <asynchronous suspension>
E/flutter (18992):

我只需删除

await Firebase.initializeApp();

就在该行之后

WidgetsFlutterBinding.ensureInitialized();

main.dart
上,这样我就可以再次看到我的主要
home_page.dart
。一切正常。


0
投票

app
级别
build.gradle
添加这个肯定会解决问题。

dependencies {
    classpath 'com.android.tools.build:gradle:7.3.0'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    classpath "com.google.gms:google-services:4.3.15"   // this makes all the difference
}
© www.soinside.com 2019 - 2024. All rights reserved.