描述:
在 Android 中调用OneSignal.init()
时,应用程序崩溃并显示错误Java.lang.IllegalStateException: Default FirebaseApp is not initialized in this process com.reactnativeprototype. Make sure to call FirebaseApp.initializeApp(Context) first
当不调用 init 并在build.gradle
以旧方式初始化时, ids
事件永远不会触发。
环境
SDK:v3.2.3
重现问题的步骤:
OneSignal.init()
。 应用程序将立即崩溃也希望有解决办法。。😔
同样的问题
@bighitbiker3如果您以旧方式初始化 - 使用 build.gradle,您可以在 JS 中调用OneSignal.configure()
来触发ids
事件。
至于这个特定的 FCM 问题,我们将进行调查,感谢您的报告
即使使用旧的初始化调用 configure 也不会为我触发 id 事件
从我的iPhone发送
2018 年 5 月 19 日 11:28,Brad Hesse [email protected]写道:
@bighitbiker3如果你用旧的方式初始化 - 使用 build.gradle,你可以在 JS 中调用 OneSignal.configure() 来触发 ids 事件。
至于这个特定的 FCM 问题,我们将进行调查,感谢您的报告
—
你收到这个是因为你被提到了。
直接回复此邮件,在 GitHub 上查看,或将线程静音。
@bigitbiker3对我来说也是一样。 我尝试了很多东西,我不得不降级到 3.1.4 版本才能使它与 React Navigation (RN 0.55.4) 一起再次工作。
@Nightsd01尝试运行OneSignal.configure()
以获取 ID 时遇到的错误是You must initialize OneSignal before getting tags! Moving this tag operation to a pending queue.
。 这来自这里的 Android SDK。
我已经尝试将其置于超时状态,以确保在调用任何内容之前运行 Android init 代码,但仍然出现上述错误。
从那里我很难调试,因为在 Android 和 RN 中导入外部库时,我是一个非常大的新手😅。
@bigitbiker3请尝试更新到 SDK 的 3.2.4,如果这能解决您的问题,请告诉我。
我使用的是 3.2.4 版本,当我调用OneSignal.init()
时收到完全相同的错误消息
我正在使用 3.2.4 并且与Onesignal.init()
有相同的错误
现在,它对我有用:
我更新了我的build.gradle
以使用较新的版本(3.0.1),例如: .../examples/RNOneSignal/android/build.gradle
并且还为 gradle-4.1 更新了我的gradle-wrapper.properties
,例如: .../examples/RNOneSignal/android/gradle/wrapper/gradle-wrapper.properties
之后我开始遇到一些错误,然后我更改了app/build.gradle
:
...
dependencies {
...
compile (project(':react-native-onesignal')){
exclude group: "com.google.android.gms"
}
compile ("com.google.android.gms:play-services-base:12.0.1") {
force = true;
}
}
...
@ramonsenadev有效,谢谢!
对于仍然遇到此问题的任何人,请注意 React Native 设置说明最近已更新。 特别是这个新部分使我在 3.2.4 上一切正常。 我仍然将compileSdkVersion
和buildToolsVersion
设置为 React Native 默认值。
@ramonsenadev 非常感谢。 您的解决方案有效。
移动到 onesignal v3.2.4 后,我执行的更多步骤是:
compileSdkVersion 26
构建工具版本“26.0.1”
目标SDK版本26
还要确保您更新了android支持库版本
编译“com.android。支持:程序兼容性-V7 :26.0.1”
我还必须在 app/build.gradle 的底部添加以下内容
configurations.all {
resolutionStrategy.eachDependency { DependencyResolveDetails details ->
def requested = details.requested
if (requested.group == 'com.android.support') {
if (!requested.name.startsWith("multidex")) {
details.useVersion '26.0.1'
}
}
}
}
感谢 OneSignal 团队! 似乎在 3.2.4 中已修复。 大家请查看@jsouza181评论中的链接。 对我很有用
最有用的评论
现在,它对我有用:
我更新了我的
build.gradle
以使用较新的版本(3.0.1),例如: .../examples/RNOneSignal/android/build.gradle并且还为 gradle-4.1 更新了我的
gradle-wrapper.properties
,例如: .../examples/RNOneSignal/android/gradle/wrapper/gradle-wrapper.properties之后我开始遇到一些错误,然后我更改了
app/build.gradle
: