在服务中获取实时数据库引用时出错 [英] Error on getting Realtime Database reference in service

查看:121
本文介绍了在服务中获取实时数据库引用时出错的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述


06-24 10:41:36.497 17316-17316 / com.example.waseem.geolocation: location_service E / AndroidRuntime:FATAL EXCEPTION:main
进程:com.example.waseem.geolocation:location_service,PID:17316
java.lang.RuntimeException:无法实例化服务com.example.waseem.geolocation。 LocationService:java.lang.IllegalStateException:名称为[DEFAULT]的FirebaseApp不存在。
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3085)
at android.app.ActivityThread.access $ 1900(ActivityThread.java:172)
at android.app.ActivityThread $ h.handleMessage(ActivityThread.java:1505)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
在android.app.ActivityThread.main(Act (本地方法)
at java.lang.reflect.Method.invoke(Method.java:372)
at(java.lang.reflect.Method.invoke)
at java.lang.reflect.Method.invoke com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
导致: java.lang.IllegalStateException:名称为[DEFAULT]的FirebaseApp不存在。
,位于com.google.firebase.FirebaseApp.getInstance(未知源)
,位于com.google.firebase.FirebaseApp.getInstance(未知源)
,位于com.google.firebase.database.FirebaseDatabase .getInstance(Unknown Source)
at com.example.waseem.geolocation.LocationService。(LocationService.java:34)
at java.lang.reflect.Constructor.newInstance(Native Method)
在java.lang。 Class.newInstance(Class.java:1650)
at android.app.ActivityThread.handleCreateService(ActivityThread.java:3082)
at android.app.ActivityThread.access $ 1900(ActivityThread.java:172)
at android.app.ActivityThread $ H.handleMessage(ActivityThread.java:1505)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper。循环(Looper.java:145)
在android.app.ActivityThread.main(ActivityThread.java:5832)$ b $在java.lang.reflect.Method.invoke(本地方法)$ b $在java.lang.reflect.Method.invoke(方法。 java:372)
at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java: 1194)`。


$ b

  DatabaseReference mDatabase = FirebaseDatabase.getInstance()。getReference(); 

声明在服务中,但它在工作中正常工作。

解决方案

/ p>

  android:process =......

当我删除它,现在我的服务在应用程序主进程上运行,我没有得到任何错误,它的工作正常。

I am getting error:

06-24 10:41:36.497 17316-17316/com.example.waseem.geolocation:location_service E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.waseem.geolocation:location_service, PID: 17316 java.lang.RuntimeException: Unable to instantiate service com.example.waseem.geolocation.LocationService: java.lang.IllegalStateException: FirebaseApp with name [DEFAULT] doesn't exist. at android.app.ActivityThread.handleCreateService(ActivityThread.java:3085) at android.app.ActivityThread.access$1900(ActivityThread.java:172) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1505) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:145) at android.app.ActivityThread.main(ActivityThread.java:5832) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) Caused by: java.lang.IllegalStateException: FirebaseApp with name [DEFAULT] doesn't exist. at com.google.firebase.FirebaseApp.getInstance(Unknown Source) at com.google.firebase.FirebaseApp.getInstance(Unknown Source) at com.google.firebase.database.FirebaseDatabase.getInstance(Unknown Source) at com.example.waseem.geolocation.LocationService.(LocationService.java:34) at java.lang.reflect.Constructor.newInstance(Native Method) at java.lang.Class.newInstance(Class.java:1650) at android.app.ActivityThread.handleCreateService(ActivityThread.java:3082) at android.app.ActivityThread.access$1900(ActivityThread.java:172)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1505)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:145)  at android.app.ActivityThread.main(ActivityThread.java:5832)  at java.lang.reflect.Method.invoke(Native Method)  at java.lang.reflect.Method.invoke(Method.java:372)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194) `.

on

DatabaseReference mDatabase = FirebaseDatabase.getInstance().getReference(); 

statement in service but its works fine in activity.

解决方案

I Found my problem solution by myself and the issue is I am getting this error because I am running my service in different process that define in manifest where I declare my service:

android:process = "......"

when I removed it and now my service is running on application main process and I am not getting any error and its works fine.

这篇关于在服务中获取实时数据库引用时出错的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆