-
-
Notifications
You must be signed in to change notification settings - Fork 847
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[ANDROID] Mapbox.UserLocation crashes my app! #233
Comments
I've got the same issue on Android Only Honor 8X |
Same here with
SDK Version: 28 |
You need to explicitly ask access to permissions now |
@RichardLindhout yes since Android 4.4 |
Do not render before you know it has a permission |
Yes, it's the fix I'm using actually, but it's not supposed to make my app crash |
@tinmar33 are you receiving the same errors as @karlguillotte mentioned above? Do you have any similar details about what you're seeing? (environment details, logs, etc) @karlguillotte have you tried this recommendation of enforcing location permission before rendering the |
@segheysens I have not, I will. It is a different behavior then previous version and it should probably be documented. Thanks! I will keep you posted. |
@segheysens Yes, i get the same errors as him (same logs / environment) |
I just gave it a try and using Leaving it open because I think that difference between platforms should be documented. |
This fix seems better than mine (using React Native |
Some code snippets. Thanks @karlguillotte :-) import { Platform } from 'react-native'
import Mapbox from '@react-native-mapbox-gl/maps'
export async function hasLocationPermission() {
if (
Platform.OS === 'web' ||
Platform.OS === 'ios' ||
(Platform.OS === 'android' && Platform.Version < 23)
) {
return true
}
const isGranted = await Mapbox.requestAndroidLocationPermissions()
console.log('isGranted', isGranted)
return isGranted
} const [permission, setPermission] = useState(false)
useEffect(() => {
const task = async () => {
const per = await hasLocationPermission()
setPermission(per)
}
task()
}, [false]) |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. |
Same problem here! |
Same issue, despite explicitly requesting permissions with |
@brandonreavis @ciphled, can you please make sure, that you're on current make sure to use this in your
|
@ferdicus I can confirm that I'm using |
@ferdicus It's generating gradle build errors, so I'll have to do a full rebuild from scratch tomorrow. Thanks again -- hopefully the latest update resolves the instability :). |
@ferdicus @brandonreavis I had stability issues with the latest build as well. What ultimately worked was downgrading to |
Describe the bug
I wanted to give a try to the latest release candidate (want to upgrade to the new Mapbox pricing model). My app uses the new
<UserLocation />
inside a<MapView />
. My app crashes on launch. It does not crash if I remove the<UserLocation />
.I added and removed the permissions and features and it still crashes.
To Reproduce
Create and render that component (simplified code):
Expected behavior
I would expected my app to run properly.
Versions:
Additional context
Here is the log:
07-10 15:09:37.634 30607 30649 E AndroidRuntime: FATAL EXCEPTION: mqt_native_modules
07-10 15:09:37.634 30607 30649 E AndroidRuntime: Process: com.avcan, PID: 30607
07-10 15:09:37.634 30607 30649 E AndroidRuntime: java.lang.SecurityException: "passive" location provider requires ACCESS_FINE_LOCATION permission.
07-10 15:09:37.634 30607 30649 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1620)
07-10 15:09:37.634 30607 30649 E AndroidRuntime: at android.os.Parcel.readException(Parcel.java:1573)
07-10 15:09:37.634 30607 30649 E AndroidRuntime: at android.location.ILocationManager$Stub$Proxy.getLastLocation(ILocationManager.java:738)
07-10 15:09:37.634 30607 30649 E AndroidRuntime: at android.location.LocationManager.getLastKnownLocation(LocationManager.java:1240)
07-10 15:09:37.634 30607 30649 E AndroidRuntime: at com.mapbox.android.core.location.AndroidLocationEngineImpl.getLastLocationFor(AndroidLocationEngineImpl.java:58)
07-10 15:09:37.634 30607 30649 E AndroidRuntime: at com.mapbox.android.core.location.MapboxFusedLocationEngineImpl.getBestLastLocation(MapboxFusedLocationEngineImpl.java:81)
07-10 15:09:37.634 30607 30649 E AndroidRuntime: at com.mapbox.android.core.location.MapboxFusedLocationEngineImpl.getLastLocation(MapboxFusedLocationEngineImpl.java:36)
07-10 15:09:37.634 30607 30649 E AndroidRuntime: at com.mapbox.android.core.location.LocationEngineProxy.getLastLocation(LocationEngineProxy.java:25)
07-10 15:09:37.634 30607 30649 E AndroidRuntime: at com.mapbox.rctmgl.location.LocationManager.getLastKnownLocation(LocationManager.java:125)
07-10 15:09:37.634 30607 30649 E AndroidRuntime: at com.mapbox.rctmgl.modules.RCTMGLLocationModule.getLastKnownLocation(RCTMGLLocationModule.java:88)
07-10 15:09:37.634 30607 30649 E AndroidRuntime: at java.lang.reflect.Method.invoke(Native Method)
07-10 15:09:37.634 30607 30649 E AndroidRuntime: at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372)
07-10 15:09:37.634 30607 30649 E AndroidRuntime: at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:158)
07-10 15:09:37.634 30607 30649 E AndroidRuntime: at com.facebook.react.bridge.queue.NativeRunnable.run(Native Method)
07-10 15:09:37.634 30607 30649 E AndroidRuntime: at android.os.Handler.handleCallback(Handler.java:739)
07-10 15:09:37.634 30607 30649 E AndroidRuntime: at android.os.Handler.dispatchMessage(Handler.java:95)
07-10 15:09:37.634 30607 30649 E AndroidRuntime: at com.facebook.react.bridge.queue.MessageQueueThreadHandler.dispatchMessage(MessageQueueThreadHandler.java:29)
07-10 15:09:37.634 30607 30649 E AndroidRuntime: at android.os.Looper.loop(Looper.java:152)
07-10 15:09:37.634 30607 30649 E AndroidRuntime: at com.facebook.react.bridge.queue.MessageQueueThreadImpl$4.run(MessageQueueThreadImpl.java:232)
07-10 15:09:37.634 30607 30649 E AndroidRuntime: at java.lang.Thread.run(Thread.java:818)
The text was updated successfully, but these errors were encountered: