我开发了一个移动的应用程序。我想在我自己的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徽标上。
2条答案
按热度按时间qjp7pelc1#
可能
FirebaseAuth.instance.currentUser
为null,或者您没有被授予位置权限。您需要在某个时候请求它,否则status.isGranted
将始终是false
。两个else
语句都有一个return
子句,所以main
函数将在runApp
调用之前停止执行。因此,白色的屏幕上,它卡住了。eit6fx6z2#
Flutter的默认编译模式是调试模式。调试模式仅在手机连接到计算机时起作用。所以你应该在发布模式下构建。下面的例子会有所帮助。