首页 > 解决方案 > 启动时同一类崩溃应用程序中的 Firebasemessaging 和 Firebasedatabase?

问题描述

有没有人在同一活动中成功使用 firebasedatabase 和 firebasemessaging ?我有两个独立工作的项目,但是一旦我DatabaseReference myRef = database.getReference();MainActivity(已经实例化firebasemessaging的项目中)添加一个,我的应用程序在启动时就会崩溃。

我在网上看了看,找不到任何提示……:(

这是主要的活动代码:

package com.google.firebase.quickstart.fcm.java;

    import -> all imports removed for smaller post.

    public class MainActivity extends AppCompatActivity {

        private static final String TAG = "MainActivity";


        FirebaseDatabase database = FirebaseDatabase.getInstance();
        DatabaseReference myRef = database.getReference();
        final DatabaseReference ring = myRef.child("mykey");

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            Log.d(TAG, "Starting MainActivity...");


            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
                Log.d(TAG, "HERE???...");
                // Create channel to show notifications.
                String channelId  = getString(R.string.default_notification_channel_id);
                String channelName = getString(R.string.default_notification_channel_name);
                NotificationManager notificationManager =
                        getSystemService(NotificationManager.class);
                notificationManager.createNotificationChannel(new NotificationChannel(channelId,
                        channelName, NotificationManager.IMPORTANCE_HIGH));
            }

            /// subscribing by default to all channel.
            Log.d(TAG, "Subscribing to all topic...");
            // [START subscribe_topics]
            FirebaseMessaging.getInstance().subscribeToTopic("all");


            // Handle possible data accompanying notification message.
            // [START handle_data_extras]
            if (getIntent().getExtras() != null) {
                for (String key : getIntent().getExtras().keySet()) {
                    Object value = getIntent().getExtras().get(key);
                    Log.d(TAG, "Key: " + key + " Value: " + value);
                }
            }
            // [END handle_data_extras]

            Button subscribeButton = findViewById(R.id.subscribeButton);
            subscribeButton.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    Log.d(TAG, "Subscribing to all topic");
                    // [START subscribe_topics]
                    FirebaseMessaging.getInstance().subscribeToTopic("all")
                            .addOnCompleteListener(new OnCompleteListener<Void>() {
                                @Override
                                public void onComplete(@NonNull Task<Void> task) {
                                    String msg = getString(R.string.msg_subscribed);
                                    if (!task.isSuccessful()) {
                                        msg = getString(R.string.msg_subscribe_failed);
                                    }
                                    Log.d(TAG, msg);
                                    Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
                                }
                            });
                    // [END subscribe_topics]
                }
            });
        }
    }

在 logCat 我得到:

2019-07-10 01:04:03.139 1364-3739/? I/ActivityManager:启动 u0 {act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.google.firebase.quickstart.fcm/.java.MainActivity bnds=[32 ,1101][235,1410]} 来自 uid 10072 pid 22480 2019-07-10 01:04:03.144 603-603/? W/hwservicemanager:getTransport:在框架或设备清单中找不到条目 vendor.qti.hardware.iop@2.0::IIop/default。2019-07-10 01:04:03.144 1364-3739/? E/ANDR-PERF-JNI:Iop tryGetService 失败 2019-07-10 01:04:03.150 1364-3739/?D/ActivityTrigger: activityStartTrigger: Activity 在全屏 ApplicationInfo{a048f56 com.google.firebase.quickstart.fcm} 2019-07-10 01:04:03.150 1364-3739/? E/ActivityTrigger:activityStartTrigger:不是 whiteListedcom.google.firebase.quickstart.fcm/com.google.firebase。quickstart.fcm.java.MainActivity/1 2019-07-10 01:04:03.150 1364-3739/? D/ActivityTrigger:activityResumeTrigger:ApplicationInfo{a048f56 com.google.firebase.quickstart.fcm} 中的活动现在处于焦点位置,似乎处于全屏模式 2019-07-10 01:04:03.150 1364-3739/?E/ActivityTrigger:activityResumeTrigger:not whiteListedcom.google.firebase.quickstart.fcm/com.google.firebase.quickstart.fcm.java.MainActivity/1 2019-07-10 01:04:03.150 1364-3739/?D/ActivityTrigger: ActivityTrigger activityPauseTrigger 2019-07-10 01:04:03.153 22480-22480/? D/BaseDraggingActivity: startActivity 记账意图 = Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.google.firebase.quickstart.fcm/.java.MainActivity bnds =[32,1101][235,1410] } 2019-07-10 01:04:03。153 22480-22480/? D/Stats:Intent.getPackage() 为空。因此尝试从 componentName.getPackageName() 获取包名:com.google.firebase.quickstart.fcm 2019-07-10 01:04:03.154 22480-22480/? D/Stats:Intent.getPackage() 为空。因此尝试从 componentName.getPackageName() 获取包名称:com.google.firebase.quickstart.fcm 2019-07-10 01:04:03.154 22480-25599/? D/Stats:在后台保存统计信息... 2019-07-10 01:04:03.154 22480-22480/? D/ItemClickHandler: onClick app, tag = AppInfo(id=-1 type=APP container=-1 screen=-1 cell(-1,-1) span(1,1) minSpan(1,1) rank=0 user =UserHandle{0} title=Firebase 云消息传递 hidden=falsedirty = false newInstallTag=null componentName=ComponentInfo{com.google.firebase.quickstart.fcm/com.google.firebase.quickstart.fcm.java. MainActivity} searchResult=null 建议App=null) 2019-07-10 01:04:03.154 22480-25599/? D/GridItemProvider:saveStatToFile:未安装包 %s。跳过它。ComponentInfo{com.microsoft.office.outlook/com.microsoft.office.outlook.MainActivity} 2019-07-10 01:04:03.155 22480-22480/? D/启动器:onPause# 哈希码:22657230 2019-07-10 01:04:03.156 22480-11989/? V/FA:记录用户参与度,毫秒:8506 2019-07-10 01:04:03.156 22480-11989/? V/FA: 连接远程服务 2019-07-10 01:04:03.157 22480-22507/? I/WeatherProvider:取消订阅天气回调:2019-07-10 01:04:03.157 1364-3744/? D/ActivityTrigger:activityResumeTrigger:ApplicationInfo{a048f56 com.google.firebase.quickstart.fcm} 中的活动现在处于焦点位置,似乎处于全屏模式 2019-07-10 01:04:03。157 1364-3744/? E/ActivityTrigger:activityResumeTrigger:not whiteListedcom.google.firebase.quickstart.fcm/com.google.firebase.quickstart.fcm.java.MainActivity/1 2019-07-10 01:04:03.158 1364-1411/?D/RestartProcessManager:更新总启动时间:com.google.firebase.quickstart.fcm 2019-07-10 01:04:03.158 1364-1411/? D/RestartProcessManager:updateSelf:com.google.firebase.quickstart.fcm,大小:30 2019-07-10 01:04:03.158 1364-1411/? D/RestartProcessManager:增加总启动时间:com.google.firebase.quickstart.fcm,次数:6,索引:29 2019-07-10 01:04:03.158 1364-1411/?D/RestartProcessManager:上次运行包:com.google.firebase.quickstart.fcm,开始时间1562713443158 2019-07-10 01:04:03.158 22480-11989/? V/FA:活动暂停,时间:45839580 2019-07-10 01:04:03.159 22480-11989/? 日/法:记录事件 (FE): user_engagement(_e), Bundle[{firebase_event_origin(_o)=auto,engagement_time_msec(_et)=8506, firebase_screen_class(_sc)=Launcher, firebase_screen_id(_si)=8729914221436155707}] .... 2019-07 -10 01:04:03.661 1364-1364/? V/SettingsProvider: 通知 0: content://settings/system/game_mode_status_auto 2019-07-10 01:04:03.661 12098-12098/? I/.quickstart.fc:拒绝重新初始化先前失败的类 java.lang.Class:java.lang.NoClassDefFoundError:解析失败:Lcom/google/firebase/FirebaseApp$IdTokenListener;2019-07-10 01:04:03.661 12098-12098/? I/.quickstart.fc:在 com.google.firebase.database.core.AuthTokenProvider com.google.firebase.database.android.AndroidPlatform.newAuthTokenProvider(java.util.concurrent.ScheduledExecutorService) (com.google.firebase:firebase-数据库@@16.0.4:112) 2019-07-10 01:04:03.661 12098-12098/? I/.quickstart.fc: at void com.google.firebase.database.core.Context.ensureAuthTokenProvider() (com.google.firebase:firebase-database@@16.0.4:246) 2019-07-10 01:04 :03.661 12098-12098/? I/.quickstart.fc: at void com.google.firebase.database.core.Context.initServices() (com.google.firebase:firebase-database@@16.0.4:98) 2019-07-10 01:04 :03.661 12098-12098/? I/.quickstart.fc: 在 void com.google.firebase.database.core.Context.freeze() (com.google.firebase:firebase-database@@16.0.4:77) 2019-07-10 01:04 :03.661 12098-12098/? I/.quickstart.fc:在 com.google.firebase.database.core.Repo com.google.firebase.database.core.RepoManager.createLocalRepo(com.google.firebase.database.core.Context, com.google.firebase .database.core.RepoInfo,com.google.firebase.database。FirebaseDatabase) (com.google.firebase:firebase-database@@16.0.4:92) 2019-07-10 01:04:03.661 12098-12098/? I/.quickstart.fc:在 com.google.firebase.database.core.Repo com.google.firebase.database.core.RepoManager.createRepo(com.google.firebase.database.core.Context, com.google.firebase .database.core.RepoInfo, com.google.firebase.database.FirebaseDatabase) (com.google.firebase:firebase-database@@16.0.4:42) 2019-07-10 01:04:03.661 12098-12098/? I/.quickstart.fc:在 void com.google.firebase.database.FirebaseDatabase.ensureRepo() (com.google.firebase:firebase-database@@16.0.4:357) 2019-07-10 01:04:03.661 12098-12098/? I/.quickstart.fc:在 com.google.firebase.database.DatabaseReference com.google.firebase.database.FirebaseDatabase.getReference() (com.google.firebase:firebase-database@@16.0.4:188) 2019- 07-10 01:04:03。661 12098-12098/? I/.quickstart.fc: 在 void com.google.firebase.quickstart.fcm.java.MainActivity.() (MainActivity.java:58) 2019-07-10 01:04:03.661 12098-12098/?I/.quickstart.fc:在 java.lang.Object java.lang.Class.newInstance() (Class.java:-2)



标签: androidfirebasefirebase-realtime-databasefirebase-cloud-messaging

解决方案


推荐阅读