EAS Android build failed, for task ':expo-gl-cpp:generateJsonModelRelease'.

Please provide the following:

  1. SDK Version: 44.0
  2. Platforms(Android/iOS/web/all): Android
  3. Add the appropriate “Tag” based on what Expo library you have a question on.

I was building for EAS Android but encountered this exception, which I think has nothing to do with my source code. I am not sure if this can be easily solved after lot of researching. I am wondering if I should upgrade Expo SDK to 45 or downgrade to 43? Thanks in advance!!

> Task :expo-gl-cpp:generateJsonModelRelease FAILED
[stderr] 
FAILURE: Build failed with an exception.
[stderr] 
* What went wrong:
[stderr] 
Execution failed for task ':expo-gl-cpp:generateJsonModelRelease'.
[stderr] 
> /home/expo/workingdir/build/node_modules/expo-gl-cpp/cpp/CMakeLists.txt : C/C++ release|armeabi-v7a : CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
[stderr] 
  Please set them or make sure they are set and tested correctly in the CMake files:
[stderr] 
  JSI_LIB
[stderr] 
      linked by target "expo-gl" in directory /home/expo/workingdir/build/node_modules/expo-gl-cpp/cpp
[stderr] 
* Try:
[stderr] 
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.
[stderr] 
* Get more help at https://help.gradle.org
[stderr] 
BUILD FAILED in 13m 28s
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.9/userguide/command_line_interface.html#sec:command_line_warnings
910 actionable tasks: 910 executed
Error: Gradle build failed with unknown error. Please see logs for the "Run gradlew" phase.

Dependecies:

{
  "name": "foodiebychloe",
  "version": "1.0.0",
  "scripts": {
    "start": "expo start --dev-client",
    "android": "expo run:android",
    "ios": "expo run:ios",
    "web": "expo start --web",
    "eject": "expo eject"
  },
  "dependencies": {
    "@react-native-async-storage/async-storage": "~1.15.0",
    "@react-native-community/datetimepicker": "4.0.0",
    "@react-native-community/slider": "4.1.12",
    "@react-native-community/viewpager": "5.0.11",
    "@react-native-firebase/app": "^14.3.3",
    "@react-native-masked-view/masked-view": "0.2.6",
    "@react-navigation/bottom-tabs": "^6.0.9",
    "@react-navigation/material-top-tabs": "^6.0.6",
    "@react-navigation/native": "^6.0.6",
    "@react-navigation/stack": "^6.0.11",
    "buffer": "^5.4.3",
    "expo": "^44.0.0",
    "expo-auth-session": "~3.5.0",
    "expo-av": "~10.2.0",
    "expo-camera": "~12.1.2",
    "expo-constants": "~13.0.1",
    "expo-device": "~4.1.0",
    "expo-file-system": "~13.1.4",
    "expo-gl": "~11.1.1",
    "expo-google-sign-in": "~10.1.0",
    "expo-image-crop": "^1.0.4",
    "expo-image-editor": "^1.7.1",
    "expo-image-manipulator": "~10.2.0",
    "expo-image-picker": "~12.0.1",
    "expo-image-picker-multiple": "^1.4.1",
    "expo-linear-gradient": "~11.0.3",
    "expo-media-library": "~14.0.0",
    "expo-notifications": "~0.14.0",
    "expo-permissions": "~13.1.0",
    "expo-random": "~12.1.1",
    "expo-sharing": "~10.1.0",
    "expo-splash-screen": "~0.14.1",
    "expo-status-bar": "~1.2.0",
    "firebase": "^9.6.4",
    "gl-react": "^4.0.1",
    "gl-react-expo": "^4.0.1",
    "native-base": "^3.3.3",
    "react": "17.0.1",
    "react-dom": "17.0.1",
    "react-native": "0.64.3",
    "react-native-autocomplete-input": "^5.0.2",
    "react-native-collapsible": "^1.6.0",
    "react-native-dots-pagination": "^0.2.0",
    "react-native-gesture-handler": "~2.1.0",
    "react-native-gl-image-filters": "^0.5.0",
    "react-native-google-places-autocomplete": "^2.4.1",
    "react-native-image-gallery": "^2.1.5",
    "react-native-modalbox": "^2.0.2",
    "react-native-pager-view": "5.4.9",
    "react-native-reanimated": "~2.3.1",
    "react-native-redash": "^16.2.3",
    "react-native-safe-area-context": "3.3.2",
    "react-native-screens": "~3.10.1",
    "react-native-star-rating": "^1.1.0",
    "react-native-svg": "12.1.1",
    "react-native-swiper": "^1.6.0-rc.3",
    "react-native-tab-view": "^3.1.1",
    "react-native-tag-input": "^0.0.21",
    "react-native-view-overflow": "^0.0.5",
    "react-native-view-shot": "3.1.2",
    "react-native-web": "0.17.1",
    "recoil": "^0.6.1"
  },
  "devDependencies": {
    "@babel/core": "^7.12.9",
    "babel-plugin-module-resolver": "^4.1.0"
  },
  "private": true
}

app.json

{
  "expo": {
    "name": "xx",
    "slug": "xx",
    "scheme": "xx",
    "version": "1.0.0",
    "orientation": "portrait",
    "icon": "./assets/icon.png",
    "splash": {
      "image": "./assets/splash.png",
      "resizeMode": "contain",
      "backgroundColor": "#ffffff"
    },
    "updates": {
      "fallbackToCacheTimeout": 0
    },
    "assetBundlePatterns": [
      "**/*"
    ],
    "ios": {
      "supportsTablet": true
    },
    "android": {
      "package": "com.xxxxxxx",
      "versionCode": 1,
      "permissions":["CAMERA_ROLL","CAMERA","READ_EXTERNAL_STORAGE", "WRITE_EXTERNAL_STORAGE"],
      "googleServicesFile": "./google-services.json",
      "adaptiveIcon": {
        "foregroundImage": "./assets/adaptive-icon.png",
        "backgroundColor": "#FFFFFF"
      }
    },
    "web": {
      "favicon": "./assets/favicon.png"
    },
    "packagerOpts": {
      "sourceExts": ["cjs"]
    }
    
  }
}

you are using expo-gl@11.1.2 that depends on expo-gl-cpp ~11.1.0 , but in the gradle build logs you can see that expo-gl-cpp (11.3.0) is installed. Most likely some other package in your dependencies is forcing the wrong version of the package and auto-linking is talking the first version it finds, you can check which package depends on it with yarn why expo-gl-cpp or npm why expo-gl-cpp .

A quick workaround would be to just add the correct version of expo-gl-cpp in package.json

This topic was automatically closed 20 days after the last reply. New replies are no longer allowed.