nativescript-community / ui-mapbox

Interactive, thoroughly customizable maps powered by vector tiles and OpenGL.
34 stars 25 forks source link

Android - Exception on mapReady - black map #19

Open trevortos opened 3 years ago

trevortos commented 3 years ago

6.1.0 and 6.2.0

Android 11, tns-android 6.5.3 On the emulator it works fine. But on my Pixel 3, it never calls the mapReady function. Looking at the adb logcat I see this..

01-30 15:19:24.206 13443 13597 W CrashReporter: Root directory doesn't exist 01-30 15:19:24.348 13443 13443 E TelemetryUtils: java.lang.SecurityException: getDataNetworkTypeForSubscriber 01-30 15:19:24.380 13443 13597 W eroInInstaller: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setUseSessionTickets(Z)V (greylist-max-q,core-platform-api, reflection, denied) 01-30 15:19:24.381 13443 13597 E MapboxTelemetry: java.lang.ExceptionInInitializerError 01-30 15:19:24.389 13443 13475 W LocationController: Location permissions are not granted 01-30 15:19:24.411 13443 13599 I Mbgl-EGLConfigChooser: In emulator: false 01-30 15:19:24.426 13443 13613 I Mbgl : {GLThread 12942}[General]: GPU Identifier: Adreno (TM) 615 01-30 15:19:24.466 13443 13601 I eroInInstaller: Rejecting re-init on previously-failed class java.lang.Class: java.lang.ExceptionInInitializerError: 01-30 15:19:24.466 13443 13601 I eroInInstaller: at okhttp3.internal.platform.Platform okhttp3.internal.platform.Platform.get() (Platform.java:85) 01-30 15:19:24.466 13443 13601 I eroInInstaller: at javax.net.ssl.SSLSocketFactory okhttp3.OkHttpClient.newSslSocketFactory(javax.net.ssl.X509TrustManager) (OkHttpClient.java:263) 01-30 15:19:24.466 13443 13601 I eroInInstaller: at void okhttp3.OkHttpClient.(okhttp3.OkHttpClient$Builder) (OkHttpClient.java:229) 01-30 15:19:24.466 13443 13601 I eroInInstaller: at void okhttp3.OkHttpClient.() (OkHttpClient.java:202) 01-30 15:19:24.466 13443 13601 I eroInInstaller: at void com.mapbox.android.telemetry.MapboxTelemetry.initializeTelemetryClient() (MapboxTelemetry.java:235) 01-30 15:19:24.466 13443 13601 I eroInInstaller: at boolean com.mapbox.android.telemetry.MapboxTelemetry.checkRequiredParameters(java.lang.String, java.lang.String) (MapboxTelemetry.java:191) 01-30 15:19:24.466 13443 13601 I eroInInstaller: at void com.mapbox.android.telemetry.MapboxTelemetry.sendEvents(java.util.List, boolean) (MapboxTelemetry.java:316) 01-30 15:19:24.466 13443 13601 I eroInInstaller: at void com.mapbox.android.telemetry.MapboxTelemetry.access$200(com.mapbox.android.telemetry.MapboxTelemetry, java.util.List, boolean) (MapboxTelemetry.java:37) 01-30 15:19:24.466 13443 13601 I eroInInstaller: at void com.mapbox.android.telemetry.MapboxTelemetry$4.run() (MapboxTelemetry.java:351) 01-30 15:19:24.466 13443 13601 I eroInInstaller: at void java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) (ThreadPoolExecutor.java:1167) 01-30 15:19:24.466 13443 13601 I eroInInstaller: at void java.util.concurrent.ThreadPoolExecutor$Worker.run() (ThreadPoolExecutor.java:641) 01-30 15:19:24.466 13443 13601 I eroInInstaller: at void java.lang.Thread.run() (Thread.java:923) 01-30 15:19:24.473 13443 13601 E libc++abi: terminating with uncaught exception of type jni::PendingJavaException 01-30 15:19:24.711 13443 13601 E libc++abi: terminate_handler unexpectedly threw an exception

Yes I have the tag in the manifest xml Yes there is a accessToken set.

trevortos commented 3 years ago

Also tried the current git app build, getting the same thing.

01-30 16:15:32.234 19167 19217 I TetheringManager: registerTetheringEventCallback:org.nativescript.mapbox 01-30 16:15:32.244 19167 19167 E TelemetryUtils: java.lang.SecurityException: getDataNetworkTypeForSubscriber 01-30 16:15:32.262 19167 19217 W vescript.mapbo: Accessing hidden method Lcom/android/org/conscrypt/OpenSSLSocketImpl;->setUseSessionTickets(Z)V (greylist-max-q,core-platform-api, reflection, denied) 01-30 16:15:32.263 19167 19217 E MapboxTelemetry: java.lang.ExceptionInInitializerError 01-30 16:15:32.275 19167 19217 I vescript.mapbo: Rejecting re-init on previously-failed class java.lang.Class: java.lang.ExceptionInInitializerError: 01-30 16:15:32.275 19167 19217 I vescript.mapbo: at okhttp3.internal.platform.Platform okhttp3.internal.platform.Platform.get() (Platform.java:85) 01-30 16:15:32.275 19167 19217 I vescript.mapbo: at javax.net.ssl.SSLSocketFactory okhttp3.OkHttpClient.newSslSocketFactory(javax.net.ssl.X509TrustManager) (OkHttpClient.java:263) 01-30 16:15:32.275 19167 19217 I vescript.mapbo: at void okhttp3.OkHttpClient.(okhttp3.OkHttpClient$Builder) (OkHttpClient.java:229) 01-30 16:15:32.275 19167 19217 I vescript.mapbo: at void okhttp3.OkHttpClient.() (OkHttpClient.java:202) 01-30 16:15:32.275 19167 19217 I vescript.mapbo: at void com.mapbox.android.telemetry.MapboxTelemetry.initializeTelemetryClient() (MapboxTelemetry.java:235) 01-30 16:15:32.275 19167 19217 I vescript.mapbo: at boolean com.mapbox.android.telemetry.MapboxTelemetry.checkRequiredParameters(java.lang.String, java.lang.String) (MapboxTelemetry.java:191) 01-30 16:15:32.275 19167 19217 I vescript.mapbo: at void com.mapbox.android.telemetry.MapboxTelemetry.sendEvents(java.util.List, boolean) (MapboxTelemetry.java:316) 01-30 16:15:32.275 19167 19217 I vescript.mapbo: at void com.mapbox.android.telemetry.MapboxTelemetry.access$200(com.mapbox.android.telemetry.MapboxTelemetry, java.util.List, boolean) (MapboxTelemetry.java:37) 01-30 16:15:32.275 19167 19217 I vescript.mapbo: at void com.mapbox.android.telemetry.MapboxTelemetry$4.run() (MapboxTelemetry.java:351) 01-30 16:15:32.275 19167 19217 I vescript.mapbo: at void java.util.concurrent.ThreadPoolExecutor.runWorker(java.util.concurrent.ThreadPoolExecutor$Worker) (ThreadPoolExecutor.java:1167) 01-30 16:15:32.275 19167 19217 I vescript.mapbo: at void java.util.concurrent.ThreadPoolExecutor$Worker.run() (ThreadPoolExecutor.java:641) 01-30 16:15:32.275 19167 19217 I vescript.mapbo: at void java.lang.Thread.run() (Thread.java:923) 01-30 16:15:32.275 19167 19217 E MapboxTelemetry: java.lang.NoClassDefFoundError: okhttp3.internal.platform.Platform

sivo1981 commented 3 years ago

Same for me on Android 11. On Android 10 works fine.

√ Getting NativeScript components versions information... √ Component nativescript has 7.1.2 version and is up to date. √ Component @nativescript/core has 7.1.4 version and is up to date.
√ Component @nativescript/ios has ^7.1.1 version and is up to date.
√ Component @nativescript/android has 7.0.1 version and is up to date.

Latest version from NPM: "@nativescript-community/ui-mapbox": "^6.2.0"

sivo1981 commented 3 years ago

Adding bellow configuration to App_Resources\Android\app.gradle solves this issue.

dependencies {
  implementation 'com.squareup.okhttp3:okhttp:4.9.0'
}
trevortos commented 3 years ago

That did seem to work. I might have also had the default app id, but I dont know if that was the cause.

lochstar commented 3 years ago

Updating to the latest Android SDKs fixed it for me.

trevortos commented 3 years ago

So im having an new issue, same class / area of issues. I have to look at adb because nothing is erroring out. The mapReady function is never called. Samsung S20, all libs / tns / and os updated. Same exact build works on my Pixel 3. Yes the permission is added to the manifest.

TelemetryUtils: java.lang.SecurityException: getDataNetworkTypeForSubscriber: uid 10316 does not have android.permission.READ_PHONE_STATE. MapboxTelemetry: java.lang.IllegalArgumentException: Invalid pattern: FVQ3CP/SEI8eLPxHJnjyew2P5DTC1OBKK4Y6XkmC0WI=