capacitor-community / capacitor-community/background-geolocation

Failure delivering result ResultInfo{who=@android:requestPermissions

Open
#108 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Java
Stars
249
Forks
79
PR merge metrics
No merged PRs in 30d

Description

**Describe the bug**
When try to request background geo location, the app was crashed.

**To Reproduce**
Steps to reproduce the behavior:
1. Create ionic capacitor app.
2. install background geo location
3. add code given documentation
4. run the app on android
5. when start background geo location. the app was crashing.

**Expected behavior**
it should display the geo location

**Smartphone (please complete the following information):**
- Device: Redmi - Android 13

**Additional context**
Plugin Version : 1.2.15

FATAL EXCEPTION: main

Process: io.ionic.starter, PID: 20357
java.lang.RuntimeException: Failure delivering result ResultInfo{who=@android:requestPermissions:, request=28351, result=0, data=Intent { act=android.content.pm.action.REQUEST_PERMISSIONS (has extras) }} to activity {io.ionic.starter/io.ionic.starter.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.getcapacitor.PluginCall.reject(java.lang.String)' on a null object reference
at android.app.ActivityThread.deliverResults(ActivityThread.java:5452)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:5491)
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:54)
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2284)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loopOnce(Looper.java:210)
at android.os.Looper.loop(Looper.java:299)
at android.app.ActivityThread.main(ActivityThread.java:8302)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1037)
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void com.getcapacitor.PluginCall.reject(java.lang.String)' on a null object reference
at com.getcapacitor.Plugin.handleRequestPermissionsResult(Plugin.java:903)
at com.equimaps.capacitor_background_geolocation.BackgroundGeolocation.handleRequestPermissionsResult(BackgroundGeolocation.java:149)
at com.getcapacitor.Bridge.onRequestPermissionsResult(Bridge.java:1065)
at com.getcapacitor.BridgeActivity.onRequestPermissionsResult(BridgeActivity.java:144)
at android.app.Activity.dispatchRequestPermissionsResult(Activity.java:8730)
at android.app.Activity.dispatchActivityResult(Activity.java:8583)
at android.app.ActivityThread.deliverResults(ActivityThread.java:5445)
at android.app.ActivityThread.handleSendResult(ActivityThread.java:5491) 
at android.app.servertransaction.ActivityResultItem.execute(ActivityResultItem.java:54) 
at android.app.servertransaction.ActivityTransactionItem.execute(ActivityTransactionItem.java:45) 
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135) 
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95) 
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2284) 
at android.os.Handler.dispatchMessage(Handler.java:106) 
at android.os.Looper.loopOnce(Looper.java:210) 
at android.os.Looper.loop(Looper.java:299) 
at android.app.ActivityThread.main(ActivityThread.java:8302) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:556) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1037) 

Contributor guide

Open the contributing guide

Research direction

Start at BackgroundGeolocation.handleRequestPermissionsResult in BackgroundGeolocation.java, referenced at line 149 in the Android stack trace, and trace the permission-result flow through Capacitor's Plugin.handleRequestPermissionsResult. Reproduce the background location request on Android 13 using the listed steps; done means the permission result no longer crashes and the app displays geolocation as expected.

Written by the indexing model from the issue text.

Assessment

Tech stack
android, java
Domain
mobile-dev
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.