【发布时间】:2019-08-14 20:16:03
【问题描述】:
我在 Flutter 上构建了一个应用程序,并试图通过 FCM 发送推送通知。早些时候它可以工作,但在更改 Firebase 消息传递的版本后,一旦我发送推送通知,应用程序就会崩溃。
我没有对代码本身进行任何更改。我查看了 GitHub 问题,但无法解决。
这是我一直在 main.dart 文件中使用的代码。
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
void initState() {
super.initState();
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) {
print('on message $message');
},
onResume: (Map<String, dynamic> message) {
print('on resume $message');
},
onLaunch: (Map<String, dynamic> message) {
print('on launch $message');
},
);
_firebaseMessaging.requestNotificationPermissions(
const IosNotificationSettings(sound: true, badge: true, alert: true));
_firebaseMessaging.getToken().then((token){
print(token);
});
我的 firebase_messaging 依赖项
firebase_messaging: ^1.0.2
我还在 app/build.gradle 中更改了 google-services 的版本
dependencies {
classpath 'com.android.tools.build:gradle:3.1.2'
classpath 'com.google.gms:google-services:3.2.0'
}
这是添加到 AndroidManifest.xml 文件中用于通知的部分
<intent-filter>
<action android:name="FLUTTER_NOTIFICATION_CLICK" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
设备日志
03-24 19:14:25.044 2630 2663 I ActivityManager: Start proc 17709:com.example.notif_app/u0a206 for broadcast com.example.notif_app/com.google.firebase.iid.FirebaseInstanceIdReceiver
03-24 19:14:25.047 17709 17709 I art : Late-enabling -Xcheck:jni
03-24 19:14:25.181 17709 17709 D FirebaseApp: com.google.firebase.auth.FirebaseAuth is not linked. Skipping initialization.
03-24 19:14:25.182 17709 17709 D FirebaseApp: com.google.firebase.crash.FirebaseCrash is not linked. Skipping initialization.
03-24 19:14:25.182 17709 17709 I FirebaseInitProvider: FirebaseApp initialization successful
03-24 19:14:25.199 17709 17730 I ResourceExtractor: Found extracted resources res_timestamp-1-1553431828587
03-24 19:14:25.206 17709 17727 I FA : App measurement is starting up, version: 15300
03-24 19:14:25.206 17709 17727 I FA : To enable debug logging run: adb shell setprop log.tag.FA VERBOSE
03-24 19:14:25.207 17709 17727 I FA : To enable faster debug mode event logging run:
03-24 19:14:25.207 17709 17727 I FA : adb shell setprop debug.firebase.analytics.app com.example.notif_app
03-24 19:14:25.220 17709 17709 D AndroidRuntime: Shutting down VM
03-24 19:14:25.221 17709 17709 E AndroidRuntime: FATAL EXCEPTION: main
03-24 19:14:25.221 17709 17709 E AndroidRuntime: Process: com.example.notif_app, PID: 17709
03-24 19:14:25.221 17709 17709 E AndroidRuntime: java.lang.NoSuchMethodError: No static method zzad()Lcom/google/firebase/iid/zzan; in class Lcom/google/firebase/iid/zzan; or its super classes (declaration of 'com.google.firebase.iid.zzan' appears in /data/app/com.example.notif_app-1/base.apk:classes2.dex)
03-24 19:14:25.221 17709 17709 E AndroidRuntime: at com.google.firebase.messaging.FirebaseMessagingService.zzb(Unknown Source)
03-24 19:14:25.221 17709 17709 E AndroidRuntime: at com.google.firebase.iid.zzb.onStartCommand(Unknown Source)
03-24 19:14:25.221 17709 17709 E AndroidRuntime: at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:3318)
03-24 19:14:25.221 17709 17709 E AndroidRuntime: at android.app.ActivityThread.-wrap21(ActivityThread.java)
谁能帮我解决这个问题?提前致谢。
【问题讨论】:
-
添加错误输出。
-
@Ryosuke 当应用程序崩溃时,logcat 中也没有错误日志,运行选项卡中也没有。检查错误日志的任何其他方式
-
您使用的是哪个 IDE?
-
在 Android Studio 中打开 android 文件夹。在 logcat 中编辑过滤器配置并设置你的包名。
-
我使用 adb logcat 检查设备日志并提取我的应用所需的所需日志。我已经用相同的方式编辑了问题。
标签: flutter firebase-cloud-messaging flutter-dependencies