手机APP启动后,可以实现定位数据获取,也能启动前台服务,当手机退出APP的时候,即APP exit的时候,
- 发布:2024-09-20 21:41
- 更新:2024-09-23 15:56
- 阅读:80
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: windows10 专业版22H2 19045.4780
HBuilderX类型: Alpha
HBuilderX版本号: 4.27
手机系统: Android
手机系统版本号: Android 12
手机厂商: 荣耀
手机机型: X40I
页面类型: nvue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
预期结果是前台服务继续运行,定位功能正常。
预期结果是前台服务继续运行,定位功能正常。
实际结果:
实际上是定位功能代码上报空指针。
实际上是定位功能代码上报空指针。
bug描述:
项目中使用插件 hr-keep-alive,启动前台服务,在启用前台服务的时候设置定时器,定时器内部调用uni.getlocation和uni.getAppAuthorizeSetting(),当手机上APP退出的时候,目前这俩函数都报错空指针。
如下:
21:24:49.694 java.lang.NullPointerException
at uts.sdk.modules.DCloudUniGetAppAuthorizeSetting.IndexKt$getAppAuthorizeSetting$1.invoke(index.kt:39)
at uts.sdk.modules.DCloudUniGetAppAuthorizeSetting.IndexKt$getAppAuthorizeSetting$1.invoke(index.kt:38)
at uts.sdk.modules.hrKeepAlive.IndexKt.getLocationTap(index.kt:218)
at uts.sdk.modules.hrKeepAlive.ForegroundCoreService$onStartCommand$1.invoke(index.kt:78)
at uts.sdk.modules.hrKeepAlive.ForegroundCoreService$onStartCommand$1.invoke(index.kt:77)
at io.dcloud.uts.UTSTimerKt$setInterval$runnableTask$1.invoke(UTSTimer.kt:158)
at io.dcloud.uts.UTSTimerKt$setInterval$runnableTask$1.invoke(UTSTimer.kt:157)
at io.dcloud.uts.UTSTimerKt.setInterval$lambda$3$lambda$2(UTSTimer.kt:164)
at io.dcloud.uts.UTSTimerKt.$r8$lambda$zCuqnEKvpL7ghhy53_Az9Spia6k(Unknown Source:0)
at io.dcloud.uts.UTSTimerKt$$ExternalSyntheticLambda3.run(Unknown Source:2)
at android.os.Handler.handleCallback(Handler.java:955)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loopOnce(Looper.java:206)
at android.os.Looper.loop(Looper.java:296)
at android.app.ActivityThread.main(ActivityThread.java:9024)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:569)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:976)
1 个回复
DCloud_UNI_yuhe
你好,看到你提到了
插件 hr-keep-alive
请不要将这个问题按照Bug提交。你可以尝试在插件市场评论,这样作者可以看到。