Слишком много ошибок аварийных сигналов / приемников

#android #firebase #firebase-cloud-messaging

#Android #firebase #firebase-облако-обмен сообщениями

Вопрос:

Я заметил кучу ошибок, появляющихся в инструментах мониторинга ошибок, связанных с FirebaseInstanceIdService:

java.lang.Исключение IllegalArgumentException: зарегистрировать слишком много широковещательных приемников 1 в android.app.ContextImpl.registerReceiverInternal(ContextImpl.java: 1838) 2 в android.app.ContextImpl.registerReceiver(ContextImpl.java: 1794) 3 в android.app.ContextImpl.registerReceiver(ContextImpl.java: 1788) 4 в android.content.ContextWrapper.registerReceiver(ContextWrapper.java:489) 5 на com.google.firebase.iid.FirebaseInstanceIdService.boolean zzag(android.content.Намерение) (неизвестный источник) 6

происходит на устройстве HUAWEI RIO-L01 под управлением Android 5.1, и:

ava.lang.Исключение SecurityException: !@Слишком много аварийных сигналов (500), зарегистрированных с pid 25905 uid 10022 1 в android.os.Parcel.readException(Parcel.java: 1546) 2 в android.os.Parcel.readException(Parcel.java: 1499) 3 в android.app.IAlarmManager $ Stub $Proxy.set(IAlarmManager.java: 206) 4 в android.app.AlarmManager.setImpl (AlarmManager.java: 428) 5 в android.app.AlarmManager.set(AlarmManager.java: 215) 6 в com.google.firebase.iid.FirebaseInstanceIdService.void zzah(android.content.Намерение) (неизвестный источник)

происходит на samsung SM-G800F под управлением Android 5.1.1. Кто-нибудь знает, что происходит?

Я подозреваю, что это, вероятно, вызвано кодом поставщика телефона, а не Firebase, но это все равно влияет на мою статистику сбоев, поэтому я хотел бы обойти это, если это возможно.

Ошибки начались с недавнего выпуска приложения, но код FCM, с которым он связан, старше, поэтому я надеюсь, что этого можно избежать. Я не уверен, что именно вызвало это изменение, не было ничего напрямую связанного с FCM, что я мог бы выделить.

Я использую Firebase 9.6.1, инструменты сборки 24.0.2, targetSdk 19, minSdk 14.

Вот файл app 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/" }
    }
}
  

Комментарии:

1. Покажите нам свои app.gradle и project.gradle , спасибо!

2. Добавлены файлы Gradle.

3. ОБНОВЛЕНИЕ: проблема, похоже, исправлена, возможно, с более поздними службами воспроизведения или библиотеками firebase, поскольку, похоже, этого больше не происходит.

4. Поздравляю, приятель, затем закройте вопрос 🙂

Ответ №1:

Все библиотеки из firebase нуждаются в этой зависимости в app.gradle:

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

Добавляет это и сообщает мне, есть ли у вас какие-либо ошибки, приветствия!

Комментарии:

1. У меня все 9.6.1, но я сталкиваюсь с этой точной проблемой на устройствах Samsung. Я не регистрирую никаких сигналов тревоги. Я также не использую службу InstanceID.

Ответ №2:

Похоже, что последующие выпуски библиотеки (по крайней мере, Firebase 9.8.0) исправили эту ситуацию, поскольку я больше не вижу, чтобы это происходило. Истинная причина остается загадкой. 🙂