[英]Flutter Firebase unable to understand stack trace
我無法理解這個堆棧跟蹤以及它出現的原因。 據我了解,這與 firebase 消息傳遞有關。
E/AndroidRuntime(26033): java.lang.AssertionError
E/AndroidRuntime(26033): at io.flutter.plugins.firebase.messaging.FlutterFirebasePermissionManager.onRequestPermissionsResult(FlutterFirebasePermissionManager.java:33)
E/AndroidRuntime(26033): at io.flutter.embedding.engine.FlutterEngineConnectionRegistry$FlutterEngineActivityPluginBinding.onRequestPermissionsResult(FlutterEngineConnectionRegistry.java:777)
E/AndroidRuntime(26033): at io.flutter.embedding.engine.FlutterEngineConnectionRegistry.onRequestPermissionsResult(FlutterEngineConnectionRegistry.java:409)
E/AndroidRuntime(26033): at io.flutter.embedding.android.FlutterActivityAndFragmentDelegate.onRequestPermissionsResult(FlutterActivityAndFragmentDelegate.java:752)
E/AndroidRuntime(26033): at io.flutter.embedding.android.FlutterActivity.onRequestPermissionsResult(FlutterActivity.java:748)
E/AndroidRuntime(26033): at android.app.Activity.dispatchRequestPermissionsResult(Activity.java:8421)
E/AndroidRuntime(26033): at android.app.Activity.dispatchActivityResult(Activity.java:8266)
E/AndroidRuntime(26033): at android.app.ActivityThread.deliverResults(ActivityThread.java:4931)
E/AndroidRuntime(26033): at android.app.ActivityThread.handleSendResult(ActivityThread.java:4979)
E/AndroidRuntime(26033): at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:51)
E/AndroidRuntime(26033): at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
E/AndroidRuntime(26033): at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
E/AndroidRuntime(26033): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2044)
E/AndroidRuntime(26033): at android.os.Handler.dispatchMessage(Handler.java:107)
E/AndroidRuntime(26033): at android.os.Looper.loop(Looper.java:223)
E/AndroidRuntime(26033): at android.app.ActivityThread.main(ActivityThread.java:7562)
E/AndroidRuntime(26033): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(26033): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:539)
E/AndroidRuntime(26033): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:950)
I/Process (26033): Sending signal. PID: 26033 SIG: 9
Lost connection to device.
但根據文檔,我處理 firebase 和通知權限的預配置是正確的。
這是我的主要的樣子,
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: DefaultFirebaseOptions.currentPlatform,
);
FirebaseMessaging messaging = FirebaseMessaging.instance;
NotificationSettings settings = await messaging.requestPermission(
alert: true,
announcement: false,
badge: true,
carPlay: false,
criticalAlert: false,
provisional: false,
sound: true,
);
print('User granted permission: ${settings.authorizationStatus}');
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
await FirebaseMessaging.instance.setForegroundNotificationPresentationOptions(
alert: true, badge: true, sound: true);
DatabaseBinding().dependencies();
runApp(MyApp());
}
Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
}
下面我在我的策略屏幕中處理權限,
Map<Permission, PermissionStatus> statuses = await [
Permission.storage,
Permission.notification,
Permission.camera
].request();
if (!statuses.containsValue(PermissionStatus.denied)) {
showGeneralDialog(
context: context,
useRootNavigator: false,......so_on
請讓我知道,堆棧跟蹤到底說了什么,如果我遺漏了什么,請解釋一下。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.