Пустой белый экран на Android с использованием react-native (только релиз)

Мое приложение отлично работает на эмуляторе в режиме отладки. Когда я попытался использовать подписанный APK на устройстве или запустить его в режиме выпуска на эмуляторе, используя:

react-native run-android --variant=release

Просто выдает пустой белый экран и не загружается.

Я использую React-Native-Navigation и React-Native-Firebase, которые могут способствовать или не способствовать решению проблемы.

Одна ошибка, которую я вижу, связана с Firebase, я думаю:

W/GooglePlayServicesUtil: сервисы Google Play устарели. Требуется 11717000, но найдено 10298470 11-20 11:24:04.624 16106-16106/? Ж/ФА:

Этот failed to send app launch определенно выглядит зловеще.

РЕДАКТИРОВАТЬ: я не уверен, что вышеуказанная ошибка на самом деле вызывает пустой белый экран при запуске версии выпуска на моем устройстве. Это сообщение отображается в эмуляторе, но мое приложение работает на эмуляторе. На моем устройстве я вижу, что версия Служб Google Play — 11.7.46, и я считаю, что она должна работать нормально.

Есть ли что-нибудь еще, из-за чего мое приложение будет пустым белым экраном только при выпуске?

РЕДАКТИРОВАТЬ 2:

на этот раз я нашел еще одну ошибку (и с тех пор я перешел на более старую версию react-native-firebase 2.2)

11-25 12:11:07.278 5281-5295/com.spectrum E/FirebaseCrash: не удалось загрузить отчет о сбоях com.google.android.gms.internal.mn: .com.google.android.gms.dynamite.DynamiteModule$zzc : удаленная загрузка не удалась. Локальный запасной вариант не найден. на com.google.android.gms.internal.ml.zzFk(неизвестный источник) на com.google.firebase.crash.zzc.zzFi(неизвестный источник) на java.util.concurrent.FutureTask.run(FutureTask.java:237 ) в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) в java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) в java.lang.Thread.run(Thread.java: 818) Причина: com.google.android.gms.dynamite.DynamiteModule$zzc: удаленная загрузка не удалась. Локальный запасной вариант не найден. ...

РЕДАКТИРОВАТЬ 3:

вот зависимости от app.gradle :

dependencies {
compile fileTree(dir: "libs", include: ["*.jar"])
compile "com.android.support:appcompat-v7:25.0.1"
compile "com.facebook.react:react-native:+"  // From node_modules
compile project(':react-native-navigation')

// RNFirebase required dependencies
compile(project(':react-native-firebase')) {
    transitive = false
}
compile "com.google.firebase:firebase-core:11.0.4"

// RNFirebase optional dependencies
compile "com.google.firebase:firebase-crash:11.0.4"
compile "com.google.firebase:firebase-messaging:11.0.4"

// If you are receiving Google Play API availability issues, add the     following dependency
//    compile "com.google.android.gms:play-services-base:11.0.4"

}

person Michael Campsall    schedule 20.11.2017    source источник
comment
Пожалуйста, опубликуйте свой проект build.gradle   -  person sfratini    schedule 30.11.2017


Ответы (2)


Как говорит ошибка:

Сервисы Google Play устарели. Требуется 11717000, но найдено 10298470

Это означает, что у вас другая версия сервисов Google Play. Я предполагаю, что вы используете последнюю версию firebase Firebase 11.6.0, но вы используете сервисы Google Play версии 10.2.9, а требуется версия 11.7.1.

Из документов Firebase (в предварительных условиях):

Устройство под управлением Android 4.0 (Ice Cream Sandwich) или более поздней версии и сервисов Google Play 11.6.0 или более поздней версии.

Итак, вам нужно либо загрузить последнюю версию Google Play Services, либо понизить версию firebase в вашем build.gradle файле.

В настоящее время у вас есть эта версия firebase:

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

понизить (возможно) до:

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

если вы понизите версию firebase-core, вам также придется понизить версию (в build.gradle) firebase-auth/firebase-storage/firebase-database

person Peter Haddad    schedule 24.11.2017
comment
Я больше не уверен, что причиной является GPS (см. мои правки к вопросу) - person Michael Campsall; 25.11.2017
comment
что показывает в logcat при отладке с помощью вашего устройства? - person Peter Haddad; 25.11.2017
comment
нам нужно больше информации, мы не можем догадаться, почему его пустой экран, но если неподписанный ключ работает, а подписанный ключ не означает, что в каждом из них есть другой код ... возможно, попробуйте на разных версиях Android устройства, чтобы проверить больше проблемы - person Peter Haddad; 25.11.2017
comment
Я добавил еще одно сообщение об ошибке, надеясь, что в нем будет больше полезной информации. - person Michael Campsall; 25.11.2017
comment
@MichaelCampsall нет, я думаю, это потому, что вы понизили версию, а используемая вами версия firebase не поддерживается на этой пониженной версии, проверьте это github.com/invertase/react-native-firebase под этим заголовком на страницеSupported versions - React Native / Firebase - person Peter Haddad; 26.11.2017
comment
@MichaelCampsall, вы не можете восстановить подписанный apk? - person Peter Haddad; 26.11.2017
comment
из того, что я вижу, версия 2.2 поддерживает RN 0.47+ (у меня 0.49.5) и firebase для Android 11.0+ (мой app.gradle говорит, что я нацелен на 11.0.4). Я также должен сказать, что релизная версия не работает на эмуляторе, только отладочная версия. - person Michael Campsall; 26.11.2017
comment
@MichaelCampsall, какую студию Android вы используете? Вы можете перейти к инструментам в верхнем меню, затем щелкнуть firebase, а затем подключиться к firebase с помощью помощника? Или измените firebase-core/messaging/crash на 11.6.0. Также у вас есть это в app.gradle внизу apply plugin: 'com.google.gms.google-services'? - person Peter Haddad; 26.11.2017
comment
Давайте продолжим обсуждение в чате. - person Michael Campsall; 27.11.2017
comment
@MichaelCampsall говорит в чате - person Peter Haddad; 27.11.2017

Как вы видите в журнале, сервисы Google Play устарели. Требуется 11717000, но найдено 10298470, это показывает, что эта ошибка связана с более старой службой воспроизведения.

Текущая версия — 11.6.0, поэтому вам необходимо обновить файл build.gradle и выполнить синхронизацию.

'com.google.firebase:firebase-core:11.6.0'
person Ashish srivastava    schedule 25.11.2017
comment
Я больше не уверен, что причиной является GPS (см. мои правки к вопросу) - person Michael Campsall; 25.11.2017