1diff --git a/packages/expo-gl/android/CMakeLists.txt b/packages/expo-gl/android/CMakeLists.txt 2index 7e7547b603..5bc387fcfd 100644 3--- a/packages/expo-gl/android/CMakeLists.txt 4+++ b/packages/expo-gl/android/CMakeLists.txt 5@@ -5,7 +5,7 @@ set(CMAKE_ANDROID_STL_TYPE c++_shared) 6 set(CMAKE_VERBOSE_MAKEFILE ON) 7 set(CMAKE_CXX_STANDARD 17) 8 9-set(PACKAGE_NAME "expo-gl") 10+set(PACKAGE_NAME "expo-gl_{VERSIONED_ABI_NAME}") 11 set(BUILD_DIR ${CMAKE_SOURCE_DIR}/build) 12 set(COMMON_DIR ${CMAKE_SOURCE_DIR}/../common) 13 14@@ -40,7 +40,7 @@ target_include_directories( 15 "${COMMON_DIR}") 16 17 find_library( 18- JSI_LIB jsi 19+ JSI_LIB jsi_{VERSIONED_ABI_NAME} 20 PATHS ${LIBRN_DIR} 21 NO_CMAKE_FIND_ROOT_PATH) 22 23diff --git a/packages/expo-gl/android/build.gradle b/packages/expo-gl/android/build.gradle 24index 78594d264b..eeab79bf64 100644 25--- a/packages/expo-gl/android/build.gradle 26+++ b/packages/expo-gl/android/build.gradle 27@@ -13,6 +13,10 @@ def RN_SO_DIR = RN_BUILD_FROM_SOURCE 28 ? Paths.get(findProject(":ReactAndroid").getProjectDir().toString(), "build", "intermediates", "library_*", "*", "jni") 29 : "${buildDir}/react-native-0*/jni" 30 def RN_AAR_DIR = "${REACT_NATIVE_DIR}/android" 31+REACT_NATIVE_DIR = "${rootDir}/versioned-react-native" 32+RN_BUILD_FROM_SOURCE = false 33+RN_SO_DIR = "${buildDir}/reactandroid-{VERSIONED_ABI_NAME}-*/jni" 34+RN_AAR_DIR = "${rootDir}/versioned-abis/expoview-{VERSIONED_ABI_NAME}/maven" 35 def reactNativeArchitectures() { 36 def value = project.getProperties().get("reactNativeArchitectures") 37 return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"] 38@@ -139,7 +143,7 @@ dependencies { 39 40 def extractReactNativeAAR = { buildType -> 41 def suffix = buildType == 'Debug' ? '-debug' : '-release' 42- def rnAARs = fileTree(RN_AAR_DIR).matching { include "**/react-native/**/*${suffix}.aar" } 43+ def rnAARs = fileTree(RN_AAR_DIR).matching { include "**/*.aar" } 44 if (rnAARs.isEmpty()) { 45 rnAARs = fileTree(RN_AAR_DIR).matching { include "**/react-native/**/*.aar" } 46 } 47diff --git a/packages/expo-gl/android/src/main/cpp/EXGLJniApi.cpp b/packages/expo-gl/android/src/main/cpp/EXGLJniApi.cpp 48index e9211d47ad..6b2c3fbb85 100644 49--- a/packages/expo-gl/android/src/main/cpp/EXGLJniApi.cpp 50+++ b/packages/expo-gl/android/src/main/cpp/EXGLJniApi.cpp 51@@ -15,13 +15,13 @@ extern "C" { 52 thread_local JNIEnv* threadLocalEnv; 53 54 JNIEXPORT jint JNICALL 55-Java_expo_modules_gl_cpp_EXGL_EXGLContextCreate 56+Java_{VERSIONED_ABI_NAME_JNI_ESCAPED}_expo_modules_gl_cpp_EXGL_EXGLContextCreate 57 (JNIEnv *env, jclass clazz) { 58 return EXGLContextCreate(); 59 } 60 61 JNIEXPORT void JNICALL 62-Java_expo_modules_gl_cpp_EXGL_EXGLContextPrepare 63+Java_{VERSIONED_ABI_NAME_JNI_ESCAPED}_expo_modules_gl_cpp_EXGL_EXGLContextPrepare 64 (JNIEnv *env, jclass clazz, jlong jsiPtr, jint exglCtxId, jobject glContext) { 65 threadLocalEnv = env; 66 jclass GLContextClass = env->GetObjectClass(glContext); 67@@ -35,55 +35,55 @@ Java_expo_modules_gl_cpp_EXGL_EXGLContextPrepare 68 } 69 70 JNIEXPORT void JNICALL 71-Java_expo_modules_gl_cpp_EXGL_EXGLContextDestroy 72+Java_{VERSIONED_ABI_NAME_JNI_ESCAPED}_expo_modules_gl_cpp_EXGL_EXGLContextDestroy 73 (JNIEnv *env, jclass clazz, jint exglCtxId) { 74 EXGLContextDestroy(exglCtxId); 75 } 76 77 JNIEXPORT void JNICALL 78-Java_expo_modules_gl_cpp_EXGL_EXGLContextFlush 79+Java_{VERSIONED_ABI_NAME_JNI_ESCAPED}_expo_modules_gl_cpp_EXGL_EXGLContextFlush 80 (JNIEnv *env, jclass clazz, jint exglCtxId) { 81 EXGLContextFlush(exglCtxId); 82 } 83 84 JNIEXPORT jint JNICALL 85-Java_expo_modules_gl_cpp_EXGL_EXGLContextCreateObject 86+Java_{VERSIONED_ABI_NAME_JNI_ESCAPED}_expo_modules_gl_cpp_EXGL_EXGLContextCreateObject 87 (JNIEnv *env, jclass clazz, jint exglCtxId) { 88 return EXGLContextCreateObject(exglCtxId); 89 } 90 91 JNIEXPORT void JNICALL 92-Java_expo_modules_gl_cpp_EXGL_EXGLContextDestroyObject 93+Java_{VERSIONED_ABI_NAME_JNI_ESCAPED}_expo_modules_gl_cpp_EXGL_EXGLContextDestroyObject 94 (JNIEnv *env, jclass clazz, jint exglCtxId, jint exglObjId) { 95 EXGLContextDestroyObject(exglCtxId, exglObjId); 96 } 97 98 JNIEXPORT void JNICALL 99-Java_expo_modules_gl_cpp_EXGL_EXGLContextMapObject 100+Java_{VERSIONED_ABI_NAME_JNI_ESCAPED}_expo_modules_gl_cpp_EXGL_EXGLContextMapObject 101 (JNIEnv *env, jclass clazz, jint exglCtxId, jint exglObjId, jint glObj) { 102 EXGLContextMapObject(exglCtxId, exglObjId, glObj); 103 } 104 105 JNIEXPORT jint JNICALL 106-Java_expo_modules_gl_cpp_EXGL_EXGLContextGetObject 107+Java_{VERSIONED_ABI_NAME_JNI_ESCAPED}_expo_modules_gl_cpp_EXGL_EXGLContextGetObject 108 (JNIEnv *env, jclass clazz, jint exglCtxId, jint exglObjId) { 109 return EXGLContextGetObject(exglCtxId, exglObjId); 110 } 111 112 JNIEXPORT void JNICALL 113-Java_expo_modules_gl_cpp_EXGL_EXGLRegisterThread 114+Java_{VERSIONED_ABI_NAME_JNI_ESCAPED}_expo_modules_gl_cpp_EXGL_EXGLRegisterThread 115 (JNIEnv *env, jclass clazz) { 116 threadLocalEnv = env; 117 } 118 119 JNIEXPORT bool JNICALL 120-Java_expo_modules_gl_cpp_EXGL_EXGLContextNeedsRedraw 121+Java_{VERSIONED_ABI_NAME_JNI_ESCAPED}_expo_modules_gl_cpp_EXGL_EXGLContextNeedsRedraw 122 (JNIEnv *env, jclass clazz, jint exglCtxId) { 123 return EXGLContextNeedsRedraw(exglCtxId); 124 } 125 126 JNIEXPORT void JNICALL 127-Java_expo_modules_gl_cpp_EXGL_EXGLContextDrawEnded 128+Java_{VERSIONED_ABI_NAME_JNI_ESCAPED}_expo_modules_gl_cpp_EXGL_EXGLContextDrawEnded 129 (JNIEnv *env, jclass clazz, jint exglCtxId) { 130 EXGLContextDrawEnded(exglCtxId); 131 } 132