dart 我的Flutter应用程序无法在手机上打开,并停留在白色屏幕上

mcvgt66p  于 2023-05-11  发布在  Flutter
关注(0)|答案(2)|浏览(201)

我开发了一个移动的应用程序。我想在我自己的Android手机上尝试一下,把它转换成APK。然而,当我在手机上打开它时,应用程序卡在了白色屏幕上。为什么会这样?
main.dart

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
  if (FirebaseAuth.instance.currentUser != null) {
    var status = await Permission.location.status;
    if (status.isGranted) {
      getUserLocation();
    } else {
      return;
    }
  } else {
    return;
  }
  runApp(const App());
}

class App extends StatelessWidget {
  const App({super.key});

  @override
  Widget build(BuildContext context) {
    return GetMaterialApp(
      theme: ThemeData(
        fontFamily: "Roboto",
        appBarTheme: const AppBarTheme(
          centerTitle: true,
          elevation: 0,
          backgroundColor: backgroundWhite,
        ),
        navigationBarTheme: NavigationBarThemeData(
          elevation: 50,
          indicatorColor: mediumRed,
          labelTextStyle: MaterialStateProperty.all(
            const TextStyle(fontSize: 17),
          ),
        ),
      ),
      debugShowCheckedModeBanner: false,
      home: const LayoutPage(),
    );
  }
}

在计算机上的模拟器上运行我的应用程序时,它有时(并不总是)会卡在Flutter徽标上。

qjp7pelc

qjp7pelc1#

可能FirebaseAuth.instance.currentUser为null,或者您没有被授予位置权限。您需要在某个时候请求它,否则status.isGranted将始终是false。两个else语句都有一个return子句,所以main函数将在runApp调用之前停止执行。因此,白色的屏幕上,它卡住了。

eit6fx6z

eit6fx6z2#

Flutter的默认编译模式是调试模式。调试模式仅在手机连接到计算机时起作用。所以你应该在发布模式下构建。下面的例子会有所帮助。

flutter run --release

相关问题