我的应用程序在调试模式下在模拟器上正常运行。当我尝试在设备上使用已签名的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 /? W / FA:
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) at 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"
}
答案 0 :(得分:3)
正如错误所说:
Google Play服务已过期。需要11717000但找到10298470
这意味着您拥有不同版本的Google Play服务。我将假设您使用的是Firebase 11.6.0
的最新版本,但您使用的是Google Play Services版本10.2.9,所需版本为11.7.1。
从Firebase文档(在先决条件中):
运行Android 4.0(Ice Cream Sandwich)或更新版本以及Google Play服务11.6.0或更高版本的设备
因此,您需要下载最新版本的Google Play服务,或者在build.gradle
文件中降级firebase
您目前拥有此版本的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
答案 1 :(得分:0)
当您看到日志时,Google Play服务已过期。需要11717000但找到了10298470,它表明此错误伴随着较旧的播放服务。
当前版本是11.6.0,因此您需要更新build.gradle文件并同步。
'com.google.firebase:firebase-core:11.6.0'