From c0ebef23fbb36ed80ccc47969ea3423b13b53c45 Mon Sep 17 00:00:00 2001 From: Eric Samelson Date: Mon, 13 Mar 2017 17:49:55 -0700 Subject: [PATCH] ensure that MapboxAccountManager class is always created from the main thread; fixes crash from Android SDK 4.2.0-beta.4 and up (#517) --- .../reactnativemapboxgl/ReactNativeMapboxGLModule.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/android/src/main/java/com/mapbox/reactnativemapboxgl/ReactNativeMapboxGLModule.java b/android/src/main/java/com/mapbox/reactnativemapboxgl/ReactNativeMapboxGLModule.java index 54f8d63..5e2c511 100644 --- a/android/src/main/java/com/mapbox/reactnativemapboxgl/ReactNativeMapboxGLModule.java +++ b/android/src/main/java/com/mapbox/reactnativemapboxgl/ReactNativeMapboxGLModule.java @@ -138,7 +138,7 @@ public class ReactNativeMapboxGLModule extends ReactContextBaseJavaModule { // Access Token @ReactMethod - public void setAccessToken(String accessToken) { + public void setAccessToken(final String accessToken) { if (accessToken == null || accessToken.length() == 0 || accessToken.equals("your-mapbox.com-access-token")) { throw new JSApplicationIllegalArgumentException("Invalid access token. Register to mapbox.com and request an access token, then pass it to setAccessToken()"); } @@ -150,7 +150,12 @@ public class ReactNativeMapboxGLModule extends ReactContextBaseJavaModule { return; } initialized = true; - MapboxAccountManager.start(context.getApplicationContext(), accessToken); + mainHandler.post(new Runnable() { + @Override + public void run() { + MapboxAccountManager.start(context.getApplicationContext(), accessToken); + } + }); initializeOfflinePacks(); }