Обновление библиотек Android Firebase вызывает сбой

Я собираюсь обновить свои библиотеки firebase в своем приложении, однако, как только я обновляю их до последних версий, я постоянно получаю сбой при запуске приложения. Журнал показывает

2019-02-01 13:29:28.845 com.google.android.googlequicksearchbox:search W/ErrorProcessor: onFatalError, processing error from engine(4)
    com.google.android.apps.gsa.shared.speech.b.g: Error reading from input stream
        at com.google.android.apps.gsa.staticplugins.recognizer.j.a.a(SourceFile:28)
        at com.google.android.apps.gsa.staticplugins.recognizer.j.b.run(SourceFile:15)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at com.google.android.apps.gsa.shared.util.concurrent.a.ax.run(SourceFile:14)
        at com.google.android.apps.gsa.shared.util.concurrent.a.bl.run(SourceFile:4)
        at com.google.android.apps.gsa.shared.util.concurrent.a.bl.run(SourceFile:4)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
        at java.lang.Thread.run(Thread.java:764)
        at com.google.android.apps.gsa.shared.util.concurrent.a.ai.run(SourceFile:6)
     Caused by: com.google.android.apps.gsa.shared.exception.GsaIOException: Error code: 393238 | Buffer overflow, no available space.
        at com.google.android.apps.gsa.speech.audio.Tee.f(SourceFile:103)
        at com.google.android.apps.gsa.speech.audio.au.read(SourceFile:2)
        at java.io.InputStream.read(InputStream.java:101)
        at com.google.android.apps.gsa.speech.audio.ao.run(SourceFile:18)
        at com.google.android.apps.gsa.speech.audio.an.run(SourceFile:2)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:457) 
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
        at com.google.android.apps.gsa.shared.util.concurrent.a.ax.run(SourceFile:14) 
        at com.google.android.apps.gsa.shared.util.concurrent.a.bl.run(SourceFile:4) 
        at com.google.android.apps.gsa.shared.util.concurrent.a.bl.run(SourceFile:4) 
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162) 
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636) 
        at java.lang.Thread.run(Thread.java:764) 
        at com.google.android.apps.gsa.shared.util.concurrent.a.ai.run(SourceFile:6) 

Вот файл build.gradle:

buildscript {
    repositories {
        maven { url 'https://maven.fabric.io/public' }
    }

    dependencies {
        classpath 'io.fabric.tools:gradle:1.25.4'
    }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'


android {
    compileSdkVersion 27
    buildToolsVersion '27.0.3'

    defaultConfig {
        applicationId "com.application.id“
        minSdkVersion 16
        targetSdkVersion 27

        // Enabling multidex support.
        multiDexEnabled true
        dexOptions {
            javaMaxHeapSize "2048M"
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-project.txt'
        }
    }
}

repositories {
    maven { url 'https://maven.fabric.io/public' }
}

dependencies {
    //compile project(':volley')
    implementation 'com.android.volley:volley:1.1.0'
    implementation 'com.android.support:support-v4:27.1.1'
    implementation 'com.android.support:appcompat-v7:27.1.1'
    implementation 'com.android.support:recyclerview-v7:27.1.1'
    implementation 'com.android.support:design:27.1.1'
    implementation 'com.android.support:cardview-v7:27.1.1'
    implementation 'com.google.firebase:firebase-appindexing:17.1.0'
...
    implementation 'commons-io:commons-io:2.4'
    implementation 'com.google.firebase:firebase-core:16.0.7'
    implementation 'com.google.firebase:firebase-messaging:17.3.4'
    implementation 'com.google.firebase:firebase-ads:17.1.3'

    implementation('com.crashlytics.sdk.android:crashlytics:2.8.0@aar') {
        transitive = true;
    }
...
}

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

Библиотеки, которые я обновил,

implementation 'com.google.firebase:firebase-appindexing:15.0.1' к implementation 'com.google.firebase:firebase-appindexing:17.1.0'

implementation 'com.google.firebase:firebase-core:15.0.2' - implementation 'com.google.firebase:firebase-core:16.0.7'

implementation 'com.google.firebase:firebase-messaging:15.0.2' - implementation 'com.google.firebase:firebase-messaging:17.3.4'

и implementation 'com.google.firebase:firebase-ads:15.0.1' до implementation 'com.google.firebase:firebase-ads:17.1.3'

Почему эти обновления могут вызывать сбой?

это приложение использует микрофон и работает на вашем эмуляторе?

Gastón Saillén 01.02.2019 21:28

Микрофон используется в приложении, а в файле манифеста у меня есть <uses-permission android:name = "android.permission.RECORD_AUDIO"/>.

Mike Walker 01.02.2019 21:38

да, но в эмуляторе нет этого оборудования, и если вы используете это в своем эмуляторе, это может быть проблемой, вы пробовали это на реальном устройстве?

Gastón Saillén 01.02.2019 21:44

Тестирование на физическом устройстве фактически дало больше информации о проблеме. При рассмотрении этого были обновления для инициализации AdMob, начиная с версии 17.0.0, и для этого должны были быть некоторые обновления в файле манифеста. После обновления приложение теперь загружается как на эмуляторах, так и на физических устройствах.

Mike Walker 01.02.2019 22:04
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
4
206
0

Другие вопросы по теме