android - 警报/接收器错误太多

标签 android firebase firebase-cloud-messaging

我注意到错误监控工具中出现了一堆错误,这些错误与 FirebaseInstanceIdService 相关:

java.lang.IllegalArgumentException: regist too many Broadcast Receivers 1 at android.app.ContextImpl.registerReceiverInternal(ContextImpl.java:1838) 2 at android.app.ContextImpl.registerReceiver(ContextImpl.java:1794) 3 at android.app.ContextImpl.registerReceiver(ContextImpl.java:1788) 4 at android.content.ContextWrapper.registerReceiver(ContextWrapper.java:489) 5 at com.google.firebase.iid.FirebaseInstanceIdService.boolean zzag(android.content.Intent)(Unknown Source) 6

发生在运行 Android 5.1 的 HUAWEI RIO-L01 设备上,并且:

ava.lang.SecurityException: !@Too many alarms (500) registered from pid 25905 uid 10022 1 at android.os.Parcel.readException(Parcel.java:1546) 2 at android.os.Parcel.readException(Parcel.java:1499) 3 at android.app.IAlarmManager$Stub$Proxy.set(IAlarmManager.java:206) 4 at android.app.AlarmManager.setImpl(AlarmManager.java:428) 5 at android.app.AlarmManager.set(AlarmManager.java:215) 6 at com.google.firebase.iid.FirebaseInstanceIdService.void zzah(android.content.Intent)(Unknown Source)

发生在运行 Android 5.1.1 的三星 SM-G800F 上。有人知道这是怎么回事吗?

我怀疑这可能是由电话供应商代码而非 Firebase 引起的,但它仍然会影响我的崩溃率统计数据,因此如果可能的话我想解决它。

错误始于最近的应用程序发布,但与之相关的 FCM 代码比这更早,这就是为什么我希望它是可以避免的。我不确定是什么变化促成了它,我无法分离出与 FCM 直接相关的任何东西。

我使用的是 Firebase 9.6.1、构建工具 24.0.2、targetSdk 19、minSdk 14。

这是应用程序 gradle 文件(经过编辑以删除测试、变体、不相关的构建类型):

apply plugin: 'com.android.application'
apply plugin: 'com.getkeepsafe.dexcount'

android {
    compileSdkVersion 24
    buildToolsVersion '24.0.2'

    dataBinding {
        enabled = true
    }

    defaultConfig {
        applicationId 'hr.doesnt.matter'
        minSdkVersion 14
        targetSdkVersion 19
        versionName '1.3.5.4'
        versionCode 13540

        multiDexEnabled true

    }
    buildTypes {
        release {
            minifyEnabled true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-android.pro'
            signingConfig signingConfigs.release
        }
    dexOptions {
        preDexLibraries true
        javaMaxHeapSize "6g" // Use gig increments depending on needs
    }
}

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
    // - SUPPORT LIBS
    compile 'com.android.support:appcompat-v7:24.2.1'
    compile 'com.android.support:recyclerview-v7:24.2.1'
    compile 'com.android.support:design:24.2.1'
    compile 'com.android.support:multidex:1.0.1'
    compile 'com.android.support:percent:24.2.1'
    // - GOOGLE SERVICES
    compile 'com.google.android.gms:play-services-base:9.6.1'
    compile 'com.google.android.gms:play-services-analytics:9.6.1'
    compile 'com.google.firebase:firebase-messaging:9.6.1'
    compile 'com.google.firebase:firebase-config:9.6.1'
    // - FONTS
    compile 'uk.co.chrisjenx:calligraphy:2.2.0'
    // - TOOLS
    compile 'com.fasterxml.jackson.core:jackson-databind:2.5.2'
    compile 'com.fasterxml.jackson.core:jackson-core:2.5.2'
    compile 'com.koushikdutta.async:androidasync:2.1.7'
    compile 'com.splunk.mint:mint:5.0.0'
    compile 'nf.fr.eraasoft:objectpool:1.1.2'
    compile 'com.google.android.exoplayer:exoplayer:r1.5.2'
    // - RX
    compile 'io.reactivex:rxandroid:1.1.0'
    compile 'com.trello:rxlifecycle:0.5.0'
    compile 'com.trello:rxlifecycle-components:0.5.0'

}

configurations.all {
    resolutionStrategy {
        force "com.android.support:support-annotations:24.2.1"
        force "com.android.support:support-v4:24.2.1"
    }
}

apply plugin: 'com.google.gms.google-services'

这是项目 gradle 文件:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:2.2.0'
        classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.5.0'
        classpath 'com.google.gms:google-services:3.0.0'
    }
}

allprojects {
    repositories {
        jcenter()
        maven { url "https://mint.splunk.com/gradle/" }
        maven { url "https://oss.sonatype.org/content/repositories/snapshots/" }
    }
}

最佳答案

所有来自 firebase 的库都需要在 app.gradle 中有这个依赖:

'com.google.firebase:firebase-core:9.6.1'

添加这个,如果有任何错误,请告诉我,问候!

关于android - 警报/接收器错误太多,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39974473/

相关文章:

Android Studio APK 大小翻倍并且 dump_syms 文件夹是什么原因?

java - 防止 ProGuard 混淆类成员名称

java - 移除 actionbar appcompat 下方的阴影

android - 如何更改 snackbar 的背景颜色?

关闭应用程序时未收到 Android FCM 推送通知

node.js - 推送到 firebase 数据库时如何设置推送键?

ios - 适用于iOS的Flutter应用在使用Firebase启动时崩溃

ios - 如何将 Firebase Storage 中的 PDF 文件保存到 App Documents 中以备将来使用?

当应用程序从多任务托盘停止时,Android 应用程序未收到 Firebase 通知

android - Firebase Cloud Messaging 将服务器 key 替换为用于发送通知/消息的 token