Skip to content

RN 0.77 support #3753

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

Open
talaikis opened this issue Jan 24, 2025 · 38 comments · May be fixed by #3749
Open

RN 0.77 support #3753

talaikis opened this issue Jan 24, 2025 · 38 comments · May be fixed by #3749

Comments

@talaikis
Copy link

Environment

  • Dev OS: Win 11
  • @rnmapbox/maps version: 10.1,33
  • React Native version: 0.77.0
  • Expo version: 52.0.27

Steps to reproduce

  1. build app for RN 0.77

Errors

e: file:////node_modules/rn-utils/android/src/main/java/com/utils/HashStoreModule.kt:66:29 Argument type mismatch: actual type is 'kotlin.String?', but 'kotlin.String' was expected.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXCalloutManager.kt:15:49 Argument type mismatch: actual type is 'com.rnmapbox.rnmbx.components.annotation.RNMBXCalloutManager', but 'U!' was expected.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXMarkerViewManager.kt:28:52 Argument type mismatch: actual type is 'com.rnmapbox.rnmbx.components.annotation.RNMBXMarkerViewManager', but 'U!' was expected.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXPointAnnotationManager.kt:24:57 Argument type mismatch: actual type is 'com.rnmapbox.rnmbx.components.annotation.RNMBXPointAnnotationManager', but 'U!' was expected.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImagesManager.kt:252:29 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'com.facebook.react.bridge.ReadableArray?'.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImagesManager.kt:252:49 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'com.facebook.react.bridge.ReadableArray?'.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImagesManager.kt:252:91 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'com.facebook.react.bridge.ReadableArray?'.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImagesManager.kt:255:51 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'com.facebook.react.bridge.ReadableArray?'.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImagesManager.kt:255:80 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'com.facebook.react.bridge.ReadableArray?'.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt:18:27 Unresolved reference 'ViewTreeLifecycleOwner'.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt:119:30 Class '<anonymous>' is not abstract and does not implement abstract member 'lifecycle'.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt:134:17 'getLifecycle' overrides nothing.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapView.kt:138:13 Unresolved reference 'ViewTreeLifecycleOwner'.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapViewManager.kt:37:16 Argument type mismatch: actual type is 'kotlin.String?', but 'kotlin.String' was expected.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapViewManager.kt:43:9 Argument type mismatch: actual type is 'kotlin.String?', but 'kotlin.String' was expected.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapViewManager.kt:60:63 Type argument is not within its bounds: should be subtype of 'it(BaseViewManagerInterface & com.facebook.react.viewmanagers.RNMBXMapViewManagerInterface<com.rnmapbox.rnmbx.components.mapview.RNMBXMapView!>)!'.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapViewManager.kt:60:84 Argument type mismatch: actual type is 'com.rnmapbox.rnmbx.components.mapview.RNMBXMapViewManager', but 'U!' was expected.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/RNMBXStyleValue.kt:85:28 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'com.facebook.react.bridge.ReadableMap?'.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/RNMBXStyleValue.kt:107:29 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'com.facebook.react.bridge.ReadableMap?'.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/RNMBXStyleValue.kt:124:45 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'com.facebook.react.bridge.ReadableArray?'.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/RNMBXStyleValue.kt:124:55 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'com.facebook.react.bridge.ReadableMap?'.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/RNMBXStyleValue.kt:126:33 Argument type mismatch: actual type is 'com.facebook.react.bridge.ReadableMap?', but 'com.facebook.react.bridge.ReadableMap' was expected.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/RNMBXStyleValue.kt:126:41 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'com.facebook.react.bridge.ReadableArray?'.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/atmosphere/RNMBXAtmosphereManager.kt:16:52 Argument type mismatch: actual type is 'com.rnmapbox.rnmbx.components.styles.atmosphere.RNMBXAtmosphereManager', but 'U!' was expected.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXShapeSourceManager.kt:122:40 None of the following candidates is applicable:
fun literal(value: Boolean): Expression
fun literal(value: Double): Expression
fun literal(value: Long): Expression
fun literal(value: String): Expression
fun literal(value: HashMap<String, Any>): Expression
fun literal(value: List<Any>): Expression
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/sources/RNMBXTileSourceManager.kt:44:26 Argument type mismatch: actual type is 'kotlin.String?', but 'kotlin.String' was expected.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/shapeAnimators/RNMBXChangeLineOffsetsShapeAnimatorModule.kt:213:41 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'com.facebook.react.bridge.ReadableArray?'.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/shapeAnimators/RNMBXChangeLineOffsetsShapeAnimatorModule.kt:213:59 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'com.facebook.react.bridge.ReadableArray?'.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/utils/extensions/Dynamic.kt:41:42 None of the following candidates is applicable:
static fun valueOf(p0: Double): Value
static fun valueOf(p0: Long): Value
static fun valueOf(p0: Boolean): Value
static fun valueOf(p0: String): Value
static fun valueOf(p0: (MutableList<Value!>..List<Value!>)): Value
static fun valueOf(p0: HashMap<String!, Value!>): Value
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/utils/extensions/Dynamic.kt:42:46 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'com.facebook.react.bridge.ReadableArray?'.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/utils/extensions/Dynamic.kt:43:42 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'com.facebook.react.bridge.ReadableMap?'.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/utils/extensions/ReadableArray.kt:49:53 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'com.facebook.react.bridge.ReadableMap?'.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/utils/extensions/ReadableArray.kt:50:57 Only safe (?.) or non-null asserted (!!.) calls are allowed on a nullable receiver of type 'com.facebook.react.bridge.ReadableArray?'.
e: file:////node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/utils/extensions/ReadableMap.kt:28:26 Argument type mismatch: actual type is 'kotlin.Any?', but 'kotlin.Any' was expected.
e: file:////node_modules/@rnmapbox/maps/android/src/main/rn-compat/rn75/com/rnmapbox/rnmbx/rncompat/ReadableMap.kt:6:12 Return type mismatch: expected 'kotlin.collections.Iterator<kotlin.collections.Map.Entry<kotlin.String, kotlin.Any>>', actual 'kotlin.collections.Iterator<kotlin.collections.Map.Entry<kotlin.String, kotlin.Any?>>'.
@efstathiosntonas
Copy link

I've opened a draft PR about supporting but need some input from the maintainers

@efstathiosntonas efstathiosntonas linked a pull request Jan 27, 2025 that will close this issue
7 tasks
@ulucantugberk
Copy link

@rnmapbox+maps+10.1.33.patch

"@rnmapbox/maps": "10.1.33",
"react": "18.3.1",
"react-native": "0.77.0",

try this patch, works for me

@1453alabanda
Copy link

@rnmapbox+maps+10.1.33.patch

"@rnmapbox/maps": "10.1.33",
"react": "18.3.1",
"react-native": "0.77.0",

try this patch, works for me

thanks, working for me..

@kyaroru
Copy link

kyaroru commented Feb 5, 2025

i'm still getting the error after applying the patch but it is at RNMBXCalloutManager file 😿

using same exact version:

"@rnmapbox/maps": "10.1.33",
"react": "18.3.1",
"react-native": "0.77.0",

Tried rm -rf node_modules and Invalidate Caches in android studio but still same

file:///xxx/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXCalloutManager.kt:15:49 Argument type mismatch: actual type is 'com.rnmapbox.rnmbx.components.annotation.RNMBXCalloutManager', but 'U!' was expected.

Is there anything that needs to be done apart from the patch?

@anandtatva
Copy link

#3753 (comment)

getting the same issue @1453alabanda @ulucantugberk

may i know your android setup

@brunoscardoso
Copy link

@rnmapbox+maps+10.1.33.patch

"@rnmapbox/maps": "10.1.33",
"react": "18.3.1",
"react-native": "0.77.0",

try this patch, works for me

I tried and it didn't work, can you send me more details of your environment on Android? things like, Kotlinversion, compileSdkVersion, etc

@brunoscardoso
Copy link

Install the lib patch-package, download the package below (is different from the patches above) this works
@rnmapbox+maps+10.1.33.patch

"@rnmapbox/maps": "10.1.33", "react": "18.3.1", "react-native": "0.77.0",

@Dosbodoke
Copy link

Dosbodoke commented Feb 14, 2025

Install the lib patch-package, download the package below (is different from the patches above) this works @rnmapbox+maps+10.1.33.patch

"@rnmapbox/maps": "10.1.33", "react": "18.3.1", "react-native": "0.77.0",

Patch package failed for me **ERROR** Failed to apply patch for package @rnmapbox/maps at path

It's the first time I'm working with patch package, am I doing something wrong?

  1. Inslatted patch package with yarn add -D patch-package
  2. added "postinstall": "patch-package" under my "scripts:" on package.json
  3. Added the file you linked under patches, so now I got \patches\@rnmapbox+maps+10.1.33.patch
  4. Deleted node_modules
  5. Ran yarn install

On my dependencies I have "@rnmapbox/maps": "10.1.33"

@Dosbodoke
Copy link

@rnmapbox+maps+10.1.33.patch

"@rnmapbox/maps": "10.1.33",
"react": "18.3.1",
"react-native": "0.77.0",

try this patch, works for me

this one worked tough

@talaikis
Copy link
Author

With patch file:

e: file:///C:/..../node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXMarkerViewManager.kt:28:52 Argument type mismatch: actual type is 'com.rnmapbox.rnmbx.components.annotation.RNMBXMarkerViewManager', but 'U!' was expected.
e: file:///C:/..../node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/annotation/RNMBXPointAnnotationManager.kt:24:57 Argument type mismatch: actual type is 'com.rnmapbox.rnmbx.components.annotation.RNMBXPointAnnotationManager', but 'U!' was expected.
e: file:///C:/..../node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapViewManager.kt:60:63 Type argument is not within its bounds: should be subtype of 'it(BaseViewManagerInterface & com.facebook.react.viewmanagers.RNMBXMapViewManagerInterface<com.rnmapbox.rnmbx.components.mapview.RNMBXMapView!>)!'.
e: file:///C:/..../node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/mapview/RNMBXMapViewManager.kt:60:84 Argument type mismatch: actual type is 'com.rnmapbox.rnmbx.components.mapview.RNMBXMapViewManager', but 'U!' was expected.
e: file:///C:/..../node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/styles/atmosphere/RNMBXAtmosphereManager.kt:16:52 Argument type mismatch: actual type is 'com.rnmapbox.rnmbx.components.styles.atmosphere.RNMBXAtmosphereManager', but 'U!' was expected
```

@Dosbodoke
Copy link

Dosbodoke commented Feb 15, 2025

With patch file:

...

Try to strict the versin to "@rnmapbox/maps": "10.1.33", use the patch provided by @1453alabanda and delete node_modules and yarn.lock/package-lock.json, It worked for me. BTW I'm using yarn, don't know if can make any difference.

@talaikis
Copy link
Author

Try to strict the versin to "@rnmapbox/maps": "10.1.33", use the patch provided by @1453alabanda and delete node_modules and yarn.lock/package-lock.json, It worked for me. BTW I'm using yarn, don't know if can make any difference.

That has nothing to do with Kotlin errors. Kotlin isn't affected by gradle or yarn cache. What Kotlin version are you using?

@Vikmanatus
Copy link

Vikmanatus commented Feb 17, 2025

Hello

I am facing the same issue as you @talaikis after applying the first suggested patch.

I am currently using :

Android gradle plugin: 8.7.2
Gradle: 8.10.2
React-Native: 0.77
Kotlin 2.0.21 (the one suggested by the upgrade helper)
minSdkVersion: 24
compileSdkVersion: 35
targetSdkVersion: 34
ndkVersion : "27.1.12297006"
agp_version : '8.8.1'

But from what I saw in the official Android docs, I might be using an outdated AGP version, I'll try to bump it and I'll come back to you to confirm if after that the patch worked

EDIT: from what I've tested, even if I upgrade to latest AGP issue, I'm still facing the issue after running the first patch

EDIT 2: the patch suggested by @brunoscardoso works perfectly, thank you very much ! 💯

I saw there is a PR for the support of react-native 0.77, let's hope it get merged soon 👍

@iffa
Copy link

iffa commented Feb 24, 2025

@rnmapbox-maps-npm-10.1.37-06aa7f1b50.patch

Here's our patch compatible with version 10.1.37 of the library that incorporates the contents of the open PR along with an Android-specific fix that I assume is related to appcompat / kotlin versions

Note that we use yarn berry (v4) so the patch format is a bit different if you use patch-package - you should replace the diff line file paths, for example:

diff --git a/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImagesManager.kt b/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImagesManager.kt

to:

diff --git a/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImagesManager.kt b/node_modules/@rnmapbox/maps/android/src/main/java/com/rnmapbox/rnmbx/components/images/RNMBXImagesManager.kt

The patch was implemented & tested with an Expo project using 0.77.1:

"expo": "52.0.37",
"react-native": "0.77.1"

@robonaut
Copy link

@iffa I can confirm this works on RN 0.78 as well (plain expo-less RN app) with patch-package.

Attached the used patch file. filename: @rnmapbox+maps+10.1.37.patch

Thx! Much appreciated!

@rnmapbox+maps+10.1.37.patch

@PierreMartin
Copy link

The version 10.1.37 with the patch applied crashes on Android in release mode on a real device. It works fine in debug mode and also in the emulator, but as soon as the app runs on a real device in release mode, it crashes immediately on launch.

The logs I have :

03-07 17:05:31.792 8186 8219 E cc.nearyou.app: Invalid ID 0x00000000.
03-07 17:05:31.903 8186 8219 F libc : Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x4 in tid 8219 (mqt_v_js), pid 8186 (cc.nearyou.app)
03-07 17:05:32.656 8240 8240 F DEBUG : Cause: null pointer dereference
03-07 17:05:32.656 8240 8240 F DEBUG : #3 pc 00247431 /data/app/.../base.apk!libreactnative.so
03-07 17:05:32.656 8240 8240 F DEBUG : #4 pc 0030faa7 /data/app/.../base.apk!libreactnative.so (facebook::react::JavaTurboModule::setEventEmitterCallback)
03-07 17:05:32.656 8240 8240 F DEBUG : #5 pc 0023423d /data/app/.../base.apk!libappmodules.so (facebook::react::NativeRNMBXLocationModuleSpecJSI::NativeRNMBXLocationModuleSpecJSI)

Has anyone else experienced this issue? Is there any fix or workaround available?

Thanks!

@bfd-paul-vicknair
Copy link

@PierreMartin - I have ONE device in production that's hitting this crash - at least I think it's the same thing, all I have is the stack trace from the google play console. All of the rest of them are working fine, including my local test devices. The prod device that's breaking is a Samsumg a13x running android 13 (sdk 33). What device/api are you seeing it on? It'd be nice to narrow down what the incompatibility is so it could at least be reproduced in a simulator.

@RemiHin
Copy link

RemiHin commented Apr 14, 2025

Any updates on this? SLowly getting more and more behind on react native versions...

@baralmanish
Copy link

The patch version for 10.1.38.

// build.gradle
buildToolsVersion = "35.0.0"
minSdkVersion = 24
compileSdkVersion = 35
targetSdkVersion = 35
ndkVersion = "27.1.12297006"
kotlinVersion = "2.0.21"
// package.json
"@rnmapbox/maps": "^10.1.38",
"react": "19.0.0",
"react-native": "0.79.0",

@rnmapbox+maps+10.1.38.patch

@generic-delta
Copy link

The patch version for 10.1.38.

// build.gradle
buildToolsVersion = "35.0.0"
minSdkVersion = 24
compileSdkVersion = 35
targetSdkVersion = 35
ndkVersion = "27.1.12297006"
kotlinVersion = "2.0.21"
// package.json
"@rnmapbox/maps": "^10.1.38",
"react": "19.0.0",
"react-native": "0.79.0",

@rnmapbox+maps+10.1.38.patch

I can confirm this patch also works on:

"@rnmapbox/maps": "10.1.38",
"react-native": "0.78.2"

kotlinVersion = "2.0.21"

Thanks! Hope this gets merged soon.

@umardev500
Copy link

The patch version for 10.1.38.

// build.gradle
buildToolsVersion = "35.0.0"
minSdkVersion = 24
compileSdkVersion = 35
targetSdkVersion = 35
ndkVersion = "27.1.12297006"
kotlinVersion = "2.0.21"
// package.json
"@rnmapbox/maps": "^10.1.38",
"react": "19.0.0",
"react-native": "0.79.0",

@rnmapbox+maps+10.1.38.patch

I can confirm this patch also works on:

"@rnmapbox/maps": "10.1.38",
"react-native": "0.78.2"

kotlinVersion = "2.0.21"

Thanks! Hope this gets merged soon.

How to install the patch

@The4star
Copy link

The4star commented May 3, 2025

 npm install patch-package postinstall-postinstall --save-dev

or

 yarn add patch-package postinstall-postinstall --dev

in package.json:

"scripts": {
       "postinstall": "patch-package"
     }

then put the patch file in a "patches" folder. (patches/@rnmapbox+maps+10.1.38.patch)

@rnmapbox+maps+10.1.38.patch

patch will be applied when you do an npm/yarn install

hope this get's merged soon.

@UchihaVeha
Copy link

UchihaVeha commented May 14, 2025

Patch works for Android. What do you think about iOS? I got this error for iOS build:
Build failed: The "Run fastlane" step failed because of an error in the Xcode build process. We automatically detected following errors in your Xcode build logs: cannot convert return expression of type '[UIView : ViewAnnotationOptions]' to return type '[String : Any?]' Refer to "Xcode Logs" below for additional, more detailed logs.

› Packaging expo-json-utils Pods/EXJSONUtils » libEXJSONUtils.a

❌ (/Users/expo/workingdir/build/packages/app/ios/Pods/MapboxMaps/Sources/MapboxMaps/Annotations/ViewAnnotationManager.swift:79:19)

77 | @available(*, deprecated, message: "Use ViewAnnotation")
78 | public var annotations: [UIView: ViewAnnotationOptions] {

79 | idsByView.compactMapValues { [mapboxMap] id in
| ^ cannot convert return expression of type '[UIView : ViewAnnotationOptions]' to return type '[String : Any?]'
80 | try? mapboxMap.options(forViewAnnotationWithId: id)
81 | }
82 | }

@jleprinc
Copy link
Contributor

I have the same issue on version 10.1.36, but because of this crash , I can't use the version 10.1.38. Which patch should i use for the version 10.1.36? (10.1.37 version doesn't work either for me)

@baralmanish
Copy link

Patch works for Android. What do you think about iOS? I got this error for iOS build: Build failed: The "Run fastlane" step failed because of an error in the Xcode build process. We automatically detected following errors in your Xcode build logs: cannot convert return expression of type '[UIView : ViewAnnotationOptions]' to return type '[String : Any?]' Refer to "Xcode Logs" below for additional, more detailed logs.

› Packaging expo-json-utils Pods/EXJSONUtils » libEXJSONUtils.a

❌ (/Users/expo/workingdir/build/packages/app/ios/Pods/MapboxMaps/Sources/MapboxMaps/Annotations/ViewAnnotationManager.swift:79:19)

77 | @available(*, deprecated, message: "Use ViewAnnotation") 78 | public var annotations: [UIView: ViewAnnotationOptions] {

79 | idsByView.compactMapValues { [mapboxMap] id in
| ^ cannot convert return expression of type '[UIView : ViewAnnotationOptions]' to return type '[String : Any?]'
80 | try? mapboxMap.options(forViewAnnotationWithId: id)
81 | }
82 | }

I am using this only for Android, I have not tested it for IOS.

@receptopalak
Copy link

The patch version for 10.1.38.

// build.gradle
buildToolsVersion = "35.0.0"
minSdkVersion = 24
compileSdkVersion = 35
targetSdkVersion = 35
ndkVersion = "27.1.12297006"
kotlinVersion = "2.0.21"
// package.json
"@rnmapbox/maps": "^10.1.38",
"react": "19.0.0",
"react-native": "0.79.0",

@rnmapbox+maps+10.1.38.patch

Thank you 🙏🏼

@fachryluid
Copy link

 npm install patch-package postinstall-postinstall --save-dev

or

 yarn add patch-package postinstall-postinstall --dev

in package.json:

"scripts": {
       "postinstall": "patch-package"
     }

then put the patch file in a "patches" folder. (patches/@rnmapbox+maps+10.1.38.patch)

@rnmapbox+maps+10.1.38.patch

patch will be applied when you do an npm/yarn install

hope this get's merged soon.

it works, thanks 🙏

@KiyoScript
Copy link

 npm install patch-package postinstall-postinstall --save-dev

or

 yarn add patch-package postinstall-postinstall --dev

in package.json:

"scripts": {
       "postinstall": "patch-package"
     }

then put the patch file in a "patches" folder. (patches/@rnmapbox+maps+10.1.38.patch)
@rnmapbox+maps+10.1.38.patch
patch will be applied when you do an npm/yarn install
hope this get's merged soon.

it works, thanks 🙏

  • What went wrong:
    Plugin [id: 'expo-module-gradle-plugin'] was not found in any of the following sources:
  • Gradle Core Plugins (not a core plugin. For more available plugins, please refer to https://docs.gradle.org/8.10.2/userguide/plugin_reference.html in the Gradle documentation.)
  • Included Builds (No included builds contain this plugin)
  • Plugin Repositories (plugin dependency must include a version number for this source)
  • Try:

Run with --stacktrace option to get the stack trace.
Run with --info or --debug option to get more log output.
Run with --scan to get full insights.
Get more help at https://help.gradle.org.

Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

For more on this, please refer to https://docs.gradle.org/8.10.2/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation.

@fachryluid
Copy link

@PierreMartin - I have ONE device in production that's hitting this crash - at least I think it's the same thing, all I have is the stack trace from the google play console. All of the rest of them are working fine, including my local test devices. The prod device that's breaking is a Samsumg a13x running android 13 (sdk 33). What device/api are you seeing it on? It'd be nice to narrow down what the incompatibility is so it could at least be reproduced in a simulator.

@bfd-paul-vicknair Hi, I'm facing the same issue on Samsung A13 running Android 14 (SDK 34). Have you found any solution or workaround for this problem yet?

@Ashishk-github
Copy link

The patch version for 10.1.38.

// build.gradle
buildToolsVersion = "35.0.0"
minSdkVersion = 24
compileSdkVersion = 35
targetSdkVersion = 35
ndkVersion = "27.1.12297006"
kotlinVersion = "2.0.21"
// package.json
"@rnmapbox/maps": "^10.1.38",
"react": "19.0.0",
"react-native": "0.79.0",

@rnmapbox+maps+10.1.38.patch

Hi I am still facing the same issue with the config:
buildToolsVersion = "35.0.0"
minSdkVersion = 24
compileSdkVersion = 35
targetSdkVersion = 35
ndkVersion = "27.1.12297006"
kotlinVersion = "2.0.21"

"@rnmapbox/maps": "^10.1.38",
"react": "19.0.0",
"react-native": "0.78.2"

@PierreMartin
Copy link

PierreMartin commented May 18, 2025

With the patch 10.1.37 + "@rnmapbox/maps": "^10.1.37" and by following the Troubleshooting section in the installation guide, everything works well for me.

@zegenerative
Copy link

Any news on a new mapbox version that doesn't need the patch?

@mazumate
Copy link

Issue is still there

@rhasve
Copy link

rhasve commented May 24, 2025

Patch worked for me

@VARN0R
Copy link

VARN0R commented May 25, 2025

The patch version for 10.1.38.

// build.gradle
buildToolsVersion = "35.0.0"
minSdkVersion = 24
compileSdkVersion = 35
targetSdkVersion = 35
ndkVersion = "27.1.12297006"
kotlinVersion = "2.0.21"
// package.json
"@rnmapbox/maps": "^10.1.38",
"react": "19.0.0",
"react-native": "0.79.0",

@rnmapbox+maps+10.1.38.patch

Thanks!!! This worked for me too!!

I'll summarize the steps again for clarity:

  1. Ensure dependency versions match – make sure all package versions, especially patch versions, are consistent across dependencies.

  2. Install required packages:

npm install patch-package postinstall-postinstall --save-dev
  1. Add this line to your package.json under the scripts section:
   "scripts": {
     "postinstall": "patch-package"
   }
  1. Download the patch file.

  2. Create a patches folder in the root of your project.

  3. Place the patch file in the patches folder.
    (patches/@rnmapbox+maps+10.1.38.patch)

  4. Delete node_modules and package-lock.json, then run:

npm install
  1. Rebuild the project.

This process helped me fix issues with rnmapbox, but I encountered a new error during build at 86%:
Task :react-native-reanimated:buildCMakeDebug FAILED

At first, I thought it was still related to rnmapbox, and I spent a lot of time trying to fix it. But the actual problem was that I had installed an old version of react-native-reanimated:

"react-native-reanimated": "^3.16.2"

You need to upgrade to a version of react-native-reanimated that explicitly supports React Native 0.79 for both the old ("Paper") and new ("Fabric") architectures.

npm install [email protected]

If this doesn't work, make your file path shorter just in case.
For example, if you use С:\User\Documents\Projects\Mobile\Project_name, change it to something shorter, for example: C:\Projects\Mobile\Project_name .

The reason for this is that the NDK contains a limited number of path characters. In one of my projects, this was the cause of the problem.

@VARN0R
Copy link

VARN0R commented May 25, 2025

Issue is still there

What versions do you have installed and which patch are you using?

@VARN0R
Copy link

VARN0R commented May 25, 2025

The patch version for 10.1.38.

// build.gradle
buildToolsVersion = "35.0.0"
minSdkVersion = 24
compileSdkVersion = 35
targetSdkVersion = 35
ndkVersion = "27.1.12297006"
kotlinVersion = "2.0.21"
// package.json
"@rnmapbox/maps": "^10.1.38",
"react": "19.0.0",
"react-native": "0.79.0",

@rnmapbox+maps+10.1.38.patch

Hi I am still facing the same issue with the config: buildToolsVersion = "35.0.0" minSdkVersion = 24 compileSdkVersion = 35 targetSdkVersion = 35 ndkVersion = "27.1.12297006" kotlinVersion = "2.0.21"

"@rnmapbox/maps": "^10.1.38",
"react": "19.0.0",
"react-native": "0.78.2"

Maybe install react-native 0.79.0. I have the same versions (except react native), and same patch, and it works

@peterbernanth19
Copy link

peterbernanth19 commented May 27, 2025

I have the same issue on version 10.1.36, but because of this crash , I can't use the version 10.1.38. Which patch should i use for the version 10.1.36? (10.1.37 version doesn't work either for me)

@rnmapbox+maps+10.1.38.patch This patch works well in 10.1.36 also. Rename this patch to 10.1.36, use that with v10.1.36 and it works

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.