Сбой уведомления React-native-firebase

Приложение вылетает при получении уведомления на устройстве Android с ОС Android 8.1.0 в симуляторе. Это происходит в приложении. Этого не происходит, когда я нахожусь за пределами приложения, и уведомление поступает нормально в панель уведомлений. Однако на реальном устройстве это происходит как внутри, так и снаружи (?). На Android 5.0.0 вылета не происходит.

Ошибка в Crashlytics:

Caused by java.lang.NoSuchMethodError: No direct method <init>(Landroid/content/Context;Ljava/lang/String;)V in class Landroid/support/v4/app/NotificationCompat$Builder; or its super classes (declaration of 'android.support.v4.app.NotificationCompat$Builder' appears in /data/app/com.parkour2342345-zqe_7U0B_6slVtK2mLk6RA==/base.apk!classes2.dex)
       at io.invertase.firebase.notifications.DisplayNotificationTask.doInBackground(DisplayNotificationTask.java:68)
       at io.invertase.firebase.notifications.DisplayNotificationTask.doInBackground(DisplayNotificationTask.java:31)
       at android.os.AsyncTask$2.call(AsyncTask.java:333)
       at java.util.concurrent.FutureTask.run(FutureTask.java:266)
       at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
       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)

а также:

Fatal Exception: java.lang.RuntimeException: An error occurred while executing doInBackground()
       at android.os.AsyncTask$3.done(AsyncTask.java:353)
       at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
       at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
       at java.util.concurrent.FutureTask.run(FutureTask.java:271)
       at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
       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)

Мой build.gradle для response-native-firebase содержит:

def DEFAULT_COMPILE_SDK_VERSION = 27
def DEFAULT_BUILD_TOOLS_VERSION = "27.0.3"
def DEFAULT_TARGET_SDK_VERSION = 26
def DEFAULT_FIREBASE_VERSION = "12.0.0"
def DEFAULT_SUPPORT_LIB_VERSION = "27.0.2"

android {
  compileSdkVersion rootProject.hasProperty('compileSdkVersion') ? rootProject.compileSdkVersion : DEFAULT_COMPILE_SDK_VERSION
  buildToolsVersion rootProject.hasProperty('buildToolsVersion') ? rootProject.buildToolsVersion : DEFAULT_BUILD_TOOLS_VERSION
  defaultConfig {
    minSdkVersion 16
    targetSdkVersion rootProject.hasProperty('targetSdkVersion') ? rootProject.targetSdkVersion : DEFAULT_TARGET_SDK_VERSION
    versionCode 1
    versionName "1.0"
    multiDexEnabled true
  }

Я разместил здесь проблему: https://github.com/invertase/react-native-firebase/issues/1553

Среда

Целевая платформа приложения: Android

Операционная система разработки: macOS High Sierra 10.13.6

Инструменты сборки: Android-студия: 3.1 AI-173.4670197

Версия React Native: 0,54,4 => 0,54,4

Версия React Native Firebase: 4.3.8

Модуль Firebase: обмен сообщениями

Вы используете машинописный текст? нет


обновление №1:

в build.gradle response-native-navigation:

def DEFAULT_SUPPORT_LIB_VERSION = "27.0.2"
...
def supportVersion = rootProject.hasProperty('supportLibVersion') ? rootProject.supportLibVersion : DEFAULT_SUPPORT_LIB_VERSION

dependencies {
  // compile fileTree(include: ['*.jar'], dir: 'libs')
  api "com.facebook.react:react-native:+"  // From node_modules
  api "com.android.support:support-v4:$supportVersion"

похоже, что в проекте не определена поддержкаLibVersion, поэтому я предполагаю, что она унаследует значение в файле. Кроме того, хотя перестройка проекта работает, линия выделяется красным цветом. Сбой уведомления React-native-firebase

не могли бы вы также опубликовать версию com.android.support:support-v4?

Tung Duong 03.10.2018 18:44
2
1
1 383
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

решение после нескольких часов разочарования: 1) исключенная строка: api "com.android.support:support-v4:$supportVersion"

2) поменял sdk на 27. def DEFAULT_TARGET_SDK_VERSION = 27

по номинальной стоимости, ни один из них не должен исправить это, но они сделали ...

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