
> echo Attempting build for Sureshkumar041-iicab with Node 16 and jdk 17
Attempting build for Sureshkumar041-iicab with Node 16 and jdk 17

> echo Build failed with Node 16 and jdk version 17 with the following error: Command '['docker', 'build', '--build-arg', 'NODE_VERSION=16', '--build-arg', 'JDK_VERSION=17', '-t', 'react-android:16-jdk17', '/home/ubuntu/BachelorsThesis/scripts/RN']' returned non-zero exit status 1.
Build failed with Node 16 and jdk version 17 with the following error: Command '['docker', 'build', '--build-arg', 'NODE_VERSION=16', '--build-arg', 'JDK_VERSION=17', '-t', 'react-android:16-jdk17', '/home/ubuntu/BachelorsThesis/scripts/RN']' returned non-zero exit status 1.

> echo Attempting build for Sureshkumar041-iicab with Node 18 and jdk 17
Attempting build for Sureshkumar041-iicab with Node 18 and jdk 17

> docker run --rm -v /home/ubuntu/storage/extracted/Sureshkumar041-iicab/iicab-c3398530d3984efd132546be941a0165a3ac6566:/source:ro -v /home/ubuntu/BachelorsThesis/scripts/RN/output/Sureshkumar041-iicab:/output -v /home/ubuntu/.npm:/root/.npm react-android:18-jdk17 bash -c 
                set -e

                cp -r /source/. /app &&                 cd /app && 
                # ---- install deps (yarn or npm) ----
                if [ -f yarn.lock ]; then
                    yarn install;
                else
                    npm install --ignore-scripts;
                fi && 
                # ---- stub missing google-services.json (Firebase/Expo prebuild) ----
                if [ ! -f google-services.json ]; then                     python3 -c "import json; open('google-services.json','w').write(json.dumps({'project_info':{'project_number':'000000000000','project_id':'stub','storage_bucket':'stub.appspot.com'},'client':[{'client_info':{'mobilesdk_app_id':'1:000000000000:android:0000000000000000','android_client_info':{'package_name':'com.stub'}},'oauth_client':[],'api_key':[{'current_key':'stub'}],'services':{'appinvite_service':{'other_platform_oauth_client':[]}}}],'configuration_version':'1'}))" 2>/dev/null || true;                 fi && 
                # ---- detect expo ----
                if grep -q '"expo"' package.json && [ ! -d android ]; then
                    echo "Expo project detected";
                    CI=1 npx --yes expo prebuild --platform android
                fi && 
                export PATH="/app/node_modules/.bin:$PATH" &&                 cd android && 
                chmod +x gradlew && 
                # ---- inject fallback repositories via Gradle init script ----
                mkdir -p $GRADLE_USER_HOME/init.d &&                 echo 'gradle.beforeProject {project ->' > $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  project.buildscript.repositories {' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://maven.google.com"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://repo1.maven.org/maven2"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://plugins.gradle.org/m2/"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://jitpack.io"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  }' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  project.repositories {' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://maven.google.com"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://repo1.maven.org/maven2"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://plugins.gradle.org/m2/"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://jitpack.io"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  }' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '}' >> $GRADLE_USER_HOME/init.d/repos.gradle && 
                # ---- patch settings.gradle to use local react-native CLI (avoids npx failures) ----
                sed -i 's/autolinkLibrariesWithCommand()/autolinkLibrariesWithCommand("node node_modules\/.bin\/react-native config")/' settings.gradle 2>/dev/null || true && 
                # ---- clean gradle ----
                (./gradlew clean || true) && 
                # ---- pre-resolve AAR transforms so CMake finds prefab paths ----
                ./gradlew :app:dependencies --configuration debugCompileClasspath --no-daemon > /dev/null 2>&1 || true && 
                # ---- enable ABI splits ----
                if grep -q 'splits' app/build.gradle 2>/dev/null; then                     sed -i 's/enable false/enable true/' app/build.gradle || true;                 else                     sed -i '/^android[[:space:]]*{/a\    splits {\n        abi {\n            reset()\n            enable true\n            universalApk false\n            include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"\n        }\n    }' app/build.gradle || true;                 fi && 
                # ---- build debug apk ----
                ./gradlew assembleDebug --no-daemon || exit 1 && 
                APK_PATH="app/build/outputs/apk/debug"

                if ! ls $APK_PATH/*.apk 1> /dev/null 2>&1; then
                    echo "ERROR: APK not generated"
                    exit 1
                fi
                # ---- copy output ----
                cp app/build/outputs/apk/debug/*.apk /output/

                # ---- copy TPL metadata ----
                [ -f ../package.json ] && cp ../package.json /output/ || true
                [ -f ../package-lock.json ] && cp ../package-lock.json /output/ || true
                [ -f ../yarn.lock ] && cp ../yarn.lock /output/ || true
                [ -f ../pnpm-lock.yaml ] && cp ../pnpm-lock.yaml /output/ || true
                [ -f app/build.gradle ] && cp app/build.gradle /output/android-build.gradle || true
                [ -f build.gradle ] && cp build.gradle /output/root-build.gradle || true
                [ -f build.gradle.kts ] && cp build.gradle.kts /output/root-build.gradle.kts || true
                [ -f settings.gradle ] && cp settings.gradle /output/ || true
                [ -f settings.gradle.kts ] && cp settings.gradle.kts /output/ || true
                [ -f gradle/libs.versions.toml ] && cp gradle/libs.versions.toml /output/ || true
                find . -name "*.gradle" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/ 2>/dev/null; done || true
                find . -name "*.gradle.kts" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/ 2>/dev/null; done || true
                mkdir -p /output/libs
                find . -name "*.jar" -not -name "gradle-wrapper.jar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/libs/ 2>/dev/null; done || true
                find . -name "*.aar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/libs/ 2>/dev/null; done || true
                find . -name "*.so" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/libs/ 2>/dev/null; done || true
                    
npm warn deprecated @babel/plugin-proposal-optional-catch-binding@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.
npm warn deprecated @babel/plugin-proposal-numeric-separator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.
npm warn deprecated @babel/plugin-proposal-nullish-coalescing-operator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.
npm warn deprecated @babel/plugin-proposal-class-properties@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
npm warn deprecated @babel/plugin-proposal-optional-chaining@7.21.0: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.
npm warn deprecated @babel/plugin-proposal-async-generator-functions@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.
npm warn deprecated @babel/plugin-proposal-object-rest-spread@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.
npm warn deprecated uglify-es@3.3.9: support for ECMAScript is superseded by `uglify-js` as of v3.13.0

added 1166 packages, and audited 1167 packages in 14s

140 packages are looking for funding
  run `npm fund` for details

43 vulnerabilities (5 low, 12 moderate, 24 high, 2 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.
Downloading https://services.gradle.org/distributions/gradle-8.0.1-all.zip
...............10%................20%................30%................40%................50%................60%................70%................80%................90%................100%

Welcome to Gradle 8.0.1!

Here are the highlights of this release:
 - Improvements to the Kotlin DSL
 - Fine-grained parallelism from the first build with configuration cache
 - Configurable Gradle user home cache cleanup

For more details see https://docs.gradle.org/8.0.1/release-notes.html

To honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/8.0.1/userguide/gradle_daemon.html#sec:disabling_the_daemon.
Daemon will be stopped at the end of the build 
> Task :gradle-plugin:pluginDescriptors
> Task :gradle-plugin:processResources
> Task :gradle-plugin:compileKotlin
> Task :gradle-plugin:compileJava NO-SOURCE
> Task :gradle-plugin:classes
> Task :gradle-plugin:jar
> Task :gradle-plugin:inspectClassesForKotlinIC

> Configure project :react-native-reanimated
Android gradle plugin: 7.4.2
Gradle: 8.0.1
Checking the license for package NDK (Side by side) 23.1.7779620 in /opt/android/licenses
License for package NDK (Side by side) 23.1.7779620 accepted.
Preparing "Install NDK (Side by side) 23.1.7779620 (revision: 23.1.7779620)".
"Install NDK (Side by side) 23.1.7779620 (revision: 23.1.7779620)" ready.
Installing NDK (Side by side) 23.1.7779620 in /opt/android/ndk/23.1.7779620
"Install NDK (Side by side) 23.1.7779620 (revision: 23.1.7779620)" complete.
"Install NDK (Side by side) 23.1.7779620 (revision: 23.1.7779620)" finished.

> Task :app:clean UP-TO-DATE
> Task :react-native-community_checkbox:clean UP-TO-DATE
> Task :react-native-gesture-handler:clean UP-TO-DATE
> Task :react-native-reanimated:cleanCmakeCache
> Task :react-native-reanimated:externalNativeBuildCleanDebug
> Task :react-native-reanimated:externalNativeBuildCleanRelease
> Task :react-native-reanimated:clean
> Task :react-native-safe-area-context:clean UP-TO-DATE
> Task :react-native-screens:clean UP-TO-DATE
> Task :react-native-vector-icons:clean UP-TO-DATE

BUILD SUCCESSFUL in 3m 26s
15 actionable tasks: 9 executed, 6 up-to-date
To honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/8.0.1/userguide/gradle_daemon.html#sec:disabling_the_daemon.
Daemon will be stopped at the end of the build 
> Task :gradle-plugin:compileKotlin UP-TO-DATE
> Task :gradle-plugin:compileJava NO-SOURCE
> Task :gradle-plugin:pluginDescriptors UP-TO-DATE
> Task :gradle-plugin:processResources UP-TO-DATE
> Task :gradle-plugin:classes UP-TO-DATE
> Task :gradle-plugin:jar UP-TO-DATE
> Task :gradle-plugin:inspectClassesForKotlinIC UP-TO-DATE

> Configure project :react-native-reanimated
Android gradle plugin: 7.4.2
Gradle: 8.0.1
Checking the license for package Android SDK Build-Tools 30.0.3 in /opt/android/licenses
License for package Android SDK Build-Tools 30.0.3 accepted.
Preparing "Install Android SDK Build-Tools 30.0.3 (revision: 30.0.3)".
"Install Android SDK Build-Tools 30.0.3 (revision: 30.0.3)" ready.
Installing Android SDK Build-Tools 30.0.3 in /opt/android/build-tools/30.0.3
"Install Android SDK Build-Tools 30.0.3 (revision: 30.0.3)" complete.
"Install Android SDK Build-Tools 30.0.3 (revision: 30.0.3)" finished.
Checking the license for package Android SDK Platform 33 in /opt/android/licenses
License for package Android SDK Platform 33 accepted.
Preparing "Install Android SDK Platform 33 (revision: 3)".
"Install Android SDK Platform 33 (revision: 3)" ready.
Installing Android SDK Platform 33 in /opt/android/platforms/android-33
"Install Android SDK Platform 33 (revision: 3)" complete.
"Install Android SDK Platform 33 (revision: 3)" finished.
Checking the license for package Android SDK Build-Tools 33 in /opt/android/licenses
License for package Android SDK Build-Tools 33 accepted.
Preparing "Install Android SDK Build-Tools 33 (revision: 33.0.0)".
"Install Android SDK Build-Tools 33 (revision: 33.0.0)" ready.
Installing Android SDK Build-Tools 33 in /opt/android/build-tools/33.0.0
"Install Android SDK Build-Tools 33 (revision: 33.0.0)" complete.
"Install Android SDK Build-Tools 33 (revision: 33.0.0)" finished.

> Task :app:buildCodegenCLI SKIPPED
> Task :app:generateCodegenSchemaFromJavaScript SKIPPED
> Task :app:generateCodegenArtifactsFromSchema SKIPPED
> Task :app:generatePackageList
> Task :app:preBuild
> Task :app:preDebugBuild
> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE
> Task :react-native-community_checkbox:preBuild UP-TO-DATE
> Task :react-native-community_checkbox:preDebugBuild UP-TO-DATE
> Task :react-native-community_checkbox:compileDebugAidl NO-SOURCE
> Task :react-native-gesture-handler:preBuild UP-TO-DATE
> Task :react-native-gesture-handler:preDebugBuild UP-TO-DATE
> Task :react-native-reanimated:assertLatestReactNativeWithNewArchitectureTask SKIPPED
> Task :react-native-reanimated:assertMinimalReactNativeVersionTask SKIPPED
> Task :react-native-reanimated:assertNoMultipleInstances
> Task :react-native-reanimated:prepareHeadersForPrefab
> Task :react-native-reanimated:preBuild
> Task :react-native-reanimated:preDebugBuild
> Task :react-native-reanimated:compileDebugAidl NO-SOURCE
> Task :react-native-gesture-handler:compileDebugAidl NO-SOURCE
> Task :react-native-safe-area-context:preBuild UP-TO-DATE
> Task :react-native-safe-area-context:preDebugBuild UP-TO-DATE
> Task :react-native-safe-area-context:compileDebugAidl NO-SOURCE
> Task :react-native-screens:preBuild UP-TO-DATE
> Task :react-native-screens:preDebugBuild UP-TO-DATE
> Task :react-native-screens:compileDebugAidl NO-SOURCE
> Task :react-native-vector-icons:preBuild UP-TO-DATE
> Task :react-native-vector-icons:preDebugBuild UP-TO-DATE
> Task :react-native-vector-icons:compileDebugAidl NO-SOURCE
> Task :app:compileDebugAidl NO-SOURCE
> Task :react-native-community_checkbox:packageDebugRenderscript NO-SOURCE
> Task :react-native-gesture-handler:packageDebugRenderscript NO-SOURCE
> Task :react-native-reanimated:packageDebugRenderscript NO-SOURCE
> Task :react-native-safe-area-context:packageDebugRenderscript NO-SOURCE
> Task :react-native-screens:packageDebugRenderscript NO-SOURCE
> Task :react-native-vector-icons:packageDebugRenderscript NO-SOURCE
> Task :app:compileDebugRenderscript NO-SOURCE
> Task :app:generateDebugBuildConfig
> Task :app:javaPreCompileDebug
> Task :react-native-community_checkbox:writeDebugAarMetadata
> Task :react-native-gesture-handler:writeDebugAarMetadata
> Task :react-native-reanimated:writeDebugAarMetadata
> Task :react-native-safe-area-context:writeDebugAarMetadata
> Task :react-native-screens:writeDebugAarMetadata
> Task :react-native-vector-icons:writeDebugAarMetadata
> Task :app:generateDebugResValues
> Task :react-native-community_checkbox:compileDebugRenderscript NO-SOURCE
> Task :react-native-community_checkbox:generateDebugResValues
> Task :react-native-community_checkbox:generateDebugResources
> Task :app:checkDebugAarMetadata
> Task :react-native-community_checkbox:packageDebugResources
> Task :react-native-gesture-handler:compileDebugRenderscript NO-SOURCE
> Task :react-native-gesture-handler:generateDebugResValues
> Task :react-native-gesture-handler:generateDebugResources
> Task :react-native-gesture-handler:packageDebugResources
> Task :react-native-reanimated:compileDebugRenderscript NO-SOURCE
> Task :react-native-reanimated:generateDebugResValues
> Task :react-native-reanimated:generateDebugResources
> Task :react-native-reanimated:packageDebugResources
> Task :react-native-safe-area-context:compileDebugRenderscript NO-SOURCE
> Task :react-native-safe-area-context:generateDebugResValues
> Task :react-native-safe-area-context:generateDebugResources
> Task :react-native-safe-area-context:packageDebugResources
> Task :react-native-screens:compileDebugRenderscript NO-SOURCE
> Task :react-native-screens:generateDebugResValues
> Task :react-native-screens:generateDebugResources
> Task :react-native-screens:packageDebugResources
> Task :react-native-vector-icons:compileDebugRenderscript NO-SOURCE
> Task :react-native-vector-icons:generateDebugResValues
> Task :react-native-vector-icons:generateDebugResources
> Task :react-native-vector-icons:packageDebugResources
> Task :app:mapDebugSourceSetPaths
> Task :app:generateDebugResources
> Task :app:createDebugCompatibleScreenManifests
> Task :app:extractDeepLinksDebug
> Task :react-native-community_checkbox:extractDeepLinksDebug
> Task :react-native-gesture-handler:extractDeepLinksDebug
> Task :react-native-reanimated:extractDeepLinksDebug
> Task :react-native-safe-area-context:extractDeepLinksDebug
> Task :react-native-screens:extractDeepLinksDebug
> Task :react-native-vector-icons:extractDeepLinksDebug

> Task :react-native-gesture-handler:processDebugManifest
package="com.swmansion.gesturehandler" found in source AndroidManifest.xml: /app/node_modules/react-native-gesture-handler/android/src/main/AndroidManifest.xml.
Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated.
Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace
This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.

> Task :react-native-reanimated:processDebugManifest
package="com.swmansion.reanimated" found in source AndroidManifest.xml: /app/node_modules/react-native-reanimated/android/src/main/AndroidManifest.xml.
Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated.
Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace
This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.

> Task :react-native-screens:processDebugManifest
package="com.swmansion.rnscreens" found in source AndroidManifest.xml: /app/node_modules/react-native-screens/android/src/main/AndroidManifest.xml.
Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated.
Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace
This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.

> Task :react-native-vector-icons:processDebugManifest
package="com.oblador.vectoricons" found in source AndroidManifest.xml: /app/node_modules/react-native-vector-icons/android/src/main/AndroidManifest.xml.
Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated.
Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace
This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.

> Task :react-native-safe-area-context:processDebugManifest
package="com.th3rdwave.safeareacontext" found in source AndroidManifest.xml: /app/node_modules/react-native-safe-area-context/android/src/main/AndroidManifest.xml.
Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated.
Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace
This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.

> Task :react-native-community_checkbox:processDebugManifest
package="com.reactnativecommunity.checkbox" found in source AndroidManifest.xml: /app/node_modules/@react-native-community/checkbox/android/src/main/AndroidManifest.xml.
Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated.
Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace
This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.

> Task :app:mergeDebugResources
> Task :react-native-community_checkbox:compileDebugLibraryResources
> Task :app:processDebugMainManifest
> Task :app:processDebugManifest
> Task :react-native-gesture-handler:compileDebugLibraryResources
> Task :react-native-reanimated:compileDebugLibraryResources
> Task :react-native-safe-area-context:compileDebugLibraryResources
> Task :react-native-safe-area-context:parseDebugLocalResources
> Task :react-native-reanimated:parseDebugLocalResources
> Task :react-native-gesture-handler:parseDebugLocalResources
> Task :react-native-community_checkbox:parseDebugLocalResources
> Task :react-native-screens:parseDebugLocalResources
> Task :react-native-screens:compileDebugLibraryResources
> Task :react-native-safe-area-context:generateDebugRFile
> Task :react-native-community_checkbox:generateDebugRFile
> Task :react-native-reanimated:generateDebugRFile
> Task :react-native-screens:generateDebugRFile
> Task :react-native-vector-icons:compileDebugLibraryResources
> Task :react-native-vector-icons:parseDebugLocalResources
> Task :react-native-community_checkbox:generateDebugBuildConfig
> Task :react-native-gesture-handler:generateDebugRFile
> Task :app:processDebugManifestForPackage
> Task :react-native-community_checkbox:javaPreCompileDebug
> Task :react-native-vector-icons:generateDebugRFile

> Task :react-native-community_checkbox:compileDebugJavaWithJavac
Note: /app/node_modules/@react-native-community/checkbox/android/src/main/java/com/reactnativecommunity/checkbox/ReactCheckBoxEvent.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

> Task :react-native-gesture-handler:generateDebugBuildConfig
> Task :react-native-reanimated:generateDebugBuildConfig
> Task :react-native-reanimated:javaPreCompileDebug
> Task :react-native-reanimated:packageNdkLibs NO-SOURCE
> Task :react-native-community_checkbox:bundleLibCompileToJarDebug
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

> Task :react-native-reanimated:compileDebugJavaWithJavac
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

> Task :react-native-gesture-handler:javaPreCompileDebug
> Task :react-native-safe-area-context:generateDebugBuildConfig
> Task :react-native-reanimated:bundleLibCompileToJarDebug
> Task :app:processDebugResources

> Task :react-native-safe-area-context:compileDebugKotlin
'compileDebugJavaWithJavac' task (current target is 11) and 'compileDebugKotlin' task (current target is 1.8) jvm target compatibility should be set to the same Java version.

> Task :react-native-safe-area-context:javaPreCompileDebug
> Task :react-native-screens:generateDebugBuildConfig

> Task :react-native-gesture-handler:compileDebugKotlin
'compileDebugJavaWithJavac' task (current target is 11) and 'compileDebugKotlin' task (current target is 1.8) jvm target compatibility should be set to the same Java version.

> Task :react-native-screens:javaPreCompileDebug
> Task :react-native-vector-icons:generateDebugBuildConfig
> Task :react-native-vector-icons:javaPreCompileDebug

> Task :react-native-screens:compileDebugKotlin
'compileDebugJavaWithJavac' task (current target is 11) and 'compileDebugKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version.
Consider using JVM toolchain: https://kotl.in/gradle/jvm/toolchain


> Task :app:mergeDebugShaders

> Task :react-native-vector-icons:compileDebugJavaWithJavac

> Task :react-native-vector-icons:bundleLibCompileToJarDebug
Note: /app/node_modules/react-native-vector-icons/android/src/oldarch/java/com/oblador/vectoricons/VectorIconsModule.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
> Task :app:compileDebugShaders NO-SOURCE
> Task :app:copyReactNativeVectorIconFonts
> Task :app:generateDebugAssets
> Task :react-native-community_checkbox:mergeDebugShaders
> Task :react-native-community_checkbox:compileDebugShaders NO-SOURCE
> Task :react-native-community_checkbox:generateDebugAssets UP-TO-DATE
> Task :react-native-community_checkbox:packageDebugAssets
> Task :react-native-gesture-handler:mergeDebugShaders
> Task :react-native-gesture-handler:compileDebugShaders NO-SOURCE
> Task :react-native-gesture-handler:generateDebugAssets UP-TO-DATE
> Task :react-native-gesture-handler:packageDebugAssets
> Task :react-native-reanimated:mergeDebugShaders
> Task :react-native-reanimated:compileDebugShaders NO-SOURCE
> Task :react-native-reanimated:generateDebugAssets UP-TO-DATE
> Task :react-native-reanimated:packageDebugAssets
> Task :react-native-safe-area-context:mergeDebugShaders
> Task :react-native-safe-area-context:compileDebugShaders NO-SOURCE
> Task :react-native-safe-area-context:generateDebugAssets UP-TO-DATE
> Task :react-native-safe-area-context:packageDebugAssets
> Task :react-native-screens:mergeDebugShaders
> Task :react-native-screens:compileDebugShaders NO-SOURCE
> Task :react-native-screens:generateDebugAssets UP-TO-DATE
> Task :react-native-screens:packageDebugAssets
> Task :react-native-vector-icons:mergeDebugShaders
> Task :react-native-vector-icons:compileDebugShaders NO-SOURCE
> Task :react-native-vector-icons:generateDebugAssets UP-TO-DATE
> Task :react-native-vector-icons:packageDebugAssets
> Task :app:mergeDebugAssets
> Task :app:processDebugJavaRes NO-SOURCE
> Task :react-native-community_checkbox:processDebugJavaRes NO-SOURCE
> Task :react-native-community_checkbox:bundleLibResDebug NO-SOURCE
> Task :react-native-gesture-handler:processDebugJavaRes NO-SOURCE
> Task :react-native-reanimated:processDebugJavaRes NO-SOURCE
> Task :react-native-reanimated:bundleLibResDebug NO-SOURCE
> Task :react-native-safe-area-context:processDebugJavaRes NO-SOURCE
> Task :react-native-screens:processDebugJavaRes NO-SOURCE
> Task :react-native-vector-icons:processDebugJavaRes NO-SOURCE
> Task :react-native-vector-icons:bundleLibResDebug NO-SOURCE
> Task :app:compressDebugAssets
> Task :app:checkDebugDuplicateClasses
> Task :app:desugarDebugFileDependencies

> Task :react-native-safe-area-context:compileDebugKotlin
w: /app/node_modules/react-native-safe-area-context/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaView.kt: (58, 23): 'getter for uiImplementation: UIImplementation!' is deprecated. Deprecated in Java

> Task :app:mergeExtDexDebug

> Task :react-native-gesture-handler:compileDebugKotlin
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt: (770, 11): Name shadowed: size
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt: (9, 51): Unreachable code
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt: (10, 80): Unreachable code
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt: (80, 18): 'onChildStartedNativeGesture(MotionEvent!): Unit' is deprecated. Deprecated in Java
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt: (86, 42): Parameter 'disallowIntercept' is never used
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt: (118, 28): Parameter 'viewTag' is never used
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt: (7, 44): 'RCTEventEmitter' is deprecated. Deprecated in Java
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt: (14, 11): 'init(Int): Unit' is deprecated. Deprecated in Java
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt: (30, 42): 'RCTEventEmitter' is deprecated. Deprecated in Java
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt: (31, 21): 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java

> Task :react-native-safe-area-context:compileDebugJavaWithJavac
> Task :react-native-safe-area-context:bundleLibCompileToJarDebug
> Task :react-native-gesture-handler:compileDebugJavaWithJavac
> Task :react-native-gesture-handler:bundleLibCompileToJarDebug
> Task :react-native-gesture-handler:bundleLibResDebug
> Task :react-native-community_checkbox:bundleLibRuntimeToJarDebug
> Task :react-native-safe-area-context:bundleLibResDebug
> Task :react-native-gesture-handler:bundleLibRuntimeToJarDebug

> Task :react-native-screens:compileDebugKotlin
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/Screen.kt:87:22 'constructor GuardedRunnable(ReactContext!)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt:65:28 'setter for targetElevation: Float' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt:127:28 'setter for targetElevation: Float' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt:86:34 'getter for systemWindowInsetTop: Int' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt:229:37 'setColorFilter(Int, PorterDuff.Mode): Unit' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt:65:22 'constructor GuardedRunnable(ReactContext!)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt:110:22 'constructor GuardedRunnable(ReactContext!)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt:137:47 'replaceSystemWindowInsets(Int, Int, Int, Int): WindowInsetsCompat' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt:138:51 'getter for systemWindowInsetLeft: Int' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt:140:51 'getter for systemWindowInsetRight: Int' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt:141:51 'getter for systemWindowInsetBottom: Int' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt:100:22 Parameter 'view' is never used
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt:100:43 Parameter 'placeholder' is never used
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/SearchBarView.kt:147:43 Parameter 'flag' is never used
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt:5:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt:10:5 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt:17:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt:20:25 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt:7:42 Parameter 'width' is never used
w: file:///app/node_modules/react-native-screens/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt:7:54 Parameter 'height' is never used

> Task :react-native-reanimated:bundleLibRuntimeToJarDebug
> Task :react-native-vector-icons:bundleLibRuntimeToJarDebug
> Task :react-native-safe-area-context:bundleLibRuntimeToJarDebug
> Task :app:mergeDebugJniLibFolders
> Task :react-native-screens:compileDebugJavaWithJavac
> Task :react-native-screens:bundleLibResDebug
> Task :react-native-screens:bundleLibCompileToJarDebug
> Task :react-native-community_checkbox:mergeDebugJniLibFolders
> Task :react-native-screens:bundleLibRuntimeToJarDebug
> Task :app:compileDebugJavaWithJavac
> Task :app:mergeLibDexDebug
> Task :app:dexBuilderDebug
> Task :react-native-community_checkbox:mergeDebugNativeLibs NO-SOURCE
> Task :react-native-community_checkbox:copyDebugJniLibsProjectOnly
> Task :react-native-gesture-handler:mergeDebugJniLibFolders
> Task :react-native-gesture-handler:mergeDebugNativeLibs NO-SOURCE
> Task :react-native-gesture-handler:copyDebugJniLibsProjectOnly
> Task :app:mergeDebugJavaResource
> Task :app:mergeProjectDexDebug
> Task :react-native-reanimated:configureCMakeDebug[arm64-v8a]
> Task :react-native-reanimated:buildCMakeDebug[arm64-v8a]
> Task :react-native-reanimated:configureCMakeDebug[armeabi-v7a]
> Task :react-native-reanimated:buildCMakeDebug[armeabi-v7a]
> Task :react-native-reanimated:configureCMakeDebug[x86]
> Task :react-native-reanimated:buildCMakeDebug[x86]
> Task :react-native-reanimated:configureCMakeDebug[x86_64]
> Task :react-native-reanimated:buildCMakeDebug[x86_64]
> Task :react-native-reanimated:externalNativeBuildDebug
> Task :react-native-reanimated:mergeDebugJniLibFolders
> Task :react-native-safe-area-context:mergeDebugJniLibFolders
> Task :react-native-safe-area-context:mergeDebugNativeLibs NO-SOURCE
> Task :react-native-safe-area-context:copyDebugJniLibsProjectOnly
> Task :react-native-screens:mergeDebugJniLibFolders
> Task :react-native-screens:mergeDebugNativeLibs NO-SOURCE
> Task :react-native-screens:copyDebugJniLibsProjectOnly
> Task :react-native-vector-icons:mergeDebugJniLibFolders
> Task :react-native-vector-icons:mergeDebugNativeLibs NO-SOURCE
> Task :react-native-vector-icons:copyDebugJniLibsProjectOnly
> Task :app:validateSigningDebug
> Task :app:writeDebugAppMetadata
> Task :app:writeDebugSigningConfigVersions
> Task :react-native-community_checkbox:stripDebugDebugSymbols NO-SOURCE
> Task :react-native-community_checkbox:copyDebugJniLibsProjectAndLocalJars
> Task :react-native-reanimated:mergeDebugNativeLibs
> Task :react-native-community_checkbox:extractDebugAnnotations
> Task :react-native-community_checkbox:extractDeepLinksForAarDebug
> Task :react-native-community_checkbox:mergeDebugGeneratedProguardFiles
> Task :react-native-community_checkbox:mergeDebugConsumerProguardFiles
> Task :react-native-community_checkbox:prepareDebugArtProfile
> Task :react-native-community_checkbox:prepareLintJarForPublish
> Task :react-native-gesture-handler:stripDebugDebugSymbols NO-SOURCE
> Task :react-native-gesture-handler:copyDebugJniLibsProjectAndLocalJars
> Task :react-native-community_checkbox:mergeDebugJavaResource
> Task :react-native-gesture-handler:extractDebugAnnotations
> Task :react-native-community_checkbox:syncDebugLibJars
> Task :react-native-reanimated:copyDebugJniLibsProjectOnly
> Task :react-native-community_checkbox:bundleDebugAar
> Task :react-native-community_checkbox:assembleDebug
> Task :react-native-gesture-handler:extractDeepLinksForAarDebug
> Task :react-native-gesture-handler:mergeDebugGeneratedProguardFiles
> Task :react-native-gesture-handler:mergeDebugConsumerProguardFiles
> Task :react-native-gesture-handler:prepareDebugArtProfile
> Task :react-native-gesture-handler:prepareLintJarForPublish
> Task :react-native-gesture-handler:mergeDebugJavaResource
> Task :react-native-gesture-handler:syncDebugLibJars
> Task :react-native-gesture-handler:bundleDebugAar
> Task :react-native-gesture-handler:assembleDebug
> Task :react-native-reanimated:extractDebugAnnotations
> Task :react-native-reanimated:extractDeepLinksForAarDebug
> Task :react-native-reanimated:mergeDebugGeneratedProguardFiles
> Task :react-native-reanimated:mergeDebugConsumerProguardFiles
> Task :react-native-reanimated:generateJsonModelDebug
> Task :react-native-reanimated:prefabDebugConfigurePackage
> Task :react-native-reanimated:stripDebugDebugSymbols
> Task :react-native-reanimated:prefabDebugPackage
> Task :react-native-reanimated:prepareDebugArtProfile
> Task :react-native-reanimated:prepareLintJarForPublish
> Task :react-native-reanimated:mergeDebugJavaResource
> Task :react-native-safe-area-context:stripDebugDebugSymbols NO-SOURCE
> Task :react-native-reanimated:syncDebugLibJars
> Task :react-native-safe-area-context:copyDebugJniLibsProjectAndLocalJars
> Task :react-native-safe-area-context:extractDebugAnnotations
> Task :react-native-safe-area-context:extractDeepLinksForAarDebug
> Task :react-native-safe-area-context:mergeDebugGeneratedProguardFiles
> Task :react-native-safe-area-context:mergeDebugConsumerProguardFiles
> Task :react-native-safe-area-context:prepareDebugArtProfile
> Task :react-native-safe-area-context:prepareLintJarForPublish
> Task :react-native-screens:stripDebugDebugSymbols NO-SOURCE
> Task :react-native-screens:copyDebugJniLibsProjectAndLocalJars
> Task :react-native-screens:extractDebugAnnotations
> Task :react-native-safe-area-context:mergeDebugJavaResource
> Task :react-native-screens:extractDeepLinksForAarDebug
> Task :react-native-safe-area-context:syncDebugLibJars
> Task :react-native-safe-area-context:bundleDebugAar
> Task :react-native-safe-area-context:assembleDebug
> Task :react-native-screens:mergeDebugGeneratedProguardFiles
> Task :react-native-screens:mergeDebugConsumerProguardFiles
> Task :react-native-screens:prepareDebugArtProfile
> Task :react-native-screens:prepareLintJarForPublish
> Task :react-native-vector-icons:stripDebugDebugSymbols NO-SOURCE
> Task :react-native-screens:mergeDebugJavaResource
> Task :react-native-vector-icons:copyDebugJniLibsProjectAndLocalJars
> Task :react-native-screens:syncDebugLibJars
> Task :react-native-screens:bundleDebugAar
> Task :react-native-screens:assembleDebug
> Task :react-native-vector-icons:extractDebugAnnotations
> Task :react-native-vector-icons:extractDeepLinksForAarDebug
> Task :react-native-vector-icons:mergeDebugGeneratedProguardFiles
> Task :react-native-vector-icons:mergeDebugConsumerProguardFiles
> Task :react-native-reanimated:copyDebugJniLibsProjectAndLocalJars
> Task :app:mergeDebugNativeLibs
> Task :react-native-vector-icons:prepareDebugArtProfile
> Task :app:stripDebugDebugSymbols
> Task :react-native-reanimated:bundleDebugAar
> Task :react-native-reanimated:assembleDebug
> Task :react-native-vector-icons:prepareLintJarForPublish
> Task :react-native-vector-icons:mergeDebugJavaResource
> Task :react-native-vector-icons:syncDebugLibJars
> Task :react-native-vector-icons:bundleDebugAar
> Task :react-native-vector-icons:assembleDebug
> Task :app:packageDebug
> Task :app:createDebugApkListingFileRedirect
> Task :app:assembleDebug
w: Detected multiple Kotlin daemon sessions at build/kotlin/sessions

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.

See https://docs.gradle.org/8.0.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 4m 21s
221 actionable tasks: 216 executed, 5 up-to-date

> docker run --rm -v /home/ubuntu/storage/extracted/Sureshkumar041-iicab/iicab-c3398530d3984efd132546be941a0165a3ac6566:/source:ro -v /home/ubuntu/BachelorsThesis/scripts/RN/output/Sureshkumar041-iicab:/output -v /home/ubuntu/.npm:/root/.npm react-android:18-jdk17 bash -c 
                set -e

                cp -r /source/. /app &&                 cd /app && 
                # ---- install deps (yarn or npm) ----
                if [ -f yarn.lock ]; then
                    yarn install;
                else
                    npm install --ignore-scripts;
                fi && 
                # ---- stub missing parent package.json (monorepo metro configs) ----
                [ ! -f ../package.json ] && cp package.json ../package.json 2>/dev/null || true && 
                # ---- patch toReversed (Node <20 compat) ----
                find node_modules -name "loadConfig.js" -path "*/metro-config/*" -exec sed -i 's/\.toReversed()/.slice().reverse()/g' {} \; 2>/dev/null || true && 
                # ---- patch missing expo/AppEntry ----
                if grep -q '"main".*expo/AppEntry' package.json 2>/dev/null &&                    [ ! -f node_modules/expo/AppEntry.js ] && [ ! -f node_modules/expo/AppEntry.ts ]; then                     node -e "const fs=require('fs'); const p=JSON.parse(fs.readFileSync('package.json','utf8')); if(fs.existsSync('index.js')){p.main='index.js'; fs.writeFileSync('package.json',JSON.stringify(p,null,2));}" 2>/dev/null || true;                 fi && 
                # ---- patch broken metro config (ESM-only, null-returning, or monorepo-only) ----
                # NOTE: do NOT replace configs that merely use expo/metro-config — those carry
                # Expo-specific resolver paths (watchFolders, extraNodeModules) needed for
                # packages like @react-native-masked-view/masked-view to resolve.
                if grep -q 'react-native-monorepo-config' metro.config.js 2>/dev/null ||                    ! node -e "const c=require('./metro.config.js'); if(!c||typeof c!=='object') process.exit(1);" 2>/dev/null; then                     if [ -d node_modules/@react-native/metro-config ]; then                         printf 'const {getDefaultConfig, mergeConfig} = require("@react-native/metro-config");
module.exports = mergeConfig(getDefaultConfig(__dirname), {});
' > metro.config.js;                     else                         printf 'const {getDefaultConfig} = require("metro-config");
module.exports = getDefaultConfig(__dirname);
' > metro.config.js;                     fi;                 fi && 
                # ---- stub missing google-services.json (Firebase/Expo prebuild) ----
                if [ ! -f google-services.json ]; then                     python3 -c "import json; open('google-services.json','w').write(json.dumps({'project_info':{'project_number':'000000000000','project_id':'stub','storage_bucket':'stub.appspot.com'},'client':[{'client_info':{'mobilesdk_app_id':'1:000000000000:android:0000000000000000','android_client_info':{'package_name':'com.stub'}},'oauth_client':[],'api_key':[{'current_key':'stub'}],'services':{'appinvite_service':{'other_platform_oauth_client':[]}}}],'configuration_version':'1'}))" 2>/dev/null || true;                 fi && 
                # ---- detect expo ----
                if grep -q '"expo"' package.json && [ ! -d android ]; then
                    echo "Expo project detected";
                    CI=1 npx --yes expo prebuild --platform android
                fi && 
                # ---- fix expo/metro-config: serializer + Flow transformIgnorePatterns ----
                # Runs AFTER prebuild because prebuild generates metro.config.js for managed-workflow
                # projects — patching before prebuild would be overwritten by the generated file.
                # Fix 1: remove customSerializer that returns JS string instead of JSON
                #   ("var __BUND..." → "Serializer did not return expected format").
                # Fix 2: add transformIgnorePatterns so expo/src/Expo.ts goes through Babel
                #   (default pattern excludes all node_modules → raw Flow types → SyntaxError).
                if [ -f metro.config.js ] && [ -d node_modules/expo ] &&                    ( grep -q 'expo/metro-config\|@expo/metro-config' metro.config.js 2>/dev/null ||                      ! grep -q 'transformIgnorePatterns' metro.config.js 2>/dev/null ); then                     cp metro.config.js metro.config.orig.js &&                     printf 'const c=require("./metro.config.orig.js");const r=Object.assign({},c);if(r.serializer){r.serializer=Object.assign({},r.serializer);delete r.serializer.customSerializer;}r.transformer=Object.assign({},r.transformer||{});if(!r.transformer.transformIgnorePatterns){r.transformer.transformIgnorePatterns=["node_modules/(?!(react-native|@react-native|expo|@expo|@unimodules|react-clone-referenced-element|@react-navigation|native-base)/)"];}module.exports=r;\n' > metro.config.js;                 fi && 
                # ---- stub missing metro watchFolders paths ----
                mkdir -p /src 2>/dev/null || true && 
                # ---- fix babel configs that use react-native-builder-bob ----
                # builder-bob is a library-dev tool; its getConfig() throws "Couldn't determine the source
                # directory" when built outside the library's own workspace. Replace with a standard preset.
                if grep -ql 'react-native-builder-bob' babel.config.js babel.config.json .babelrc .babelrc.js 2>/dev/null; then                     if [ -d node_modules/babel-preset-expo ]; then                         printf 'module.exports=function(api){api.cache(true);return{presets:["babel-preset-expo"]};};
' > babel.config.js;                     elif [ -d node_modules/@react-native/babel-preset ]; then                         printf 'module.exports={presets:["module:@react-native/babel-preset"]};' > babel.config.js;                     else                         printf 'module.exports={presets:["module:metro-react-native-babel-preset"]};' > babel.config.js;                     fi;                 fi && 
                # ---- ensure TypeScript babel support (fixes 'interface' SyntaxError in metro bundling) ----
                if [ -d node_modules/babel-preset-expo ]; then                     grep -ql "expo\|typescript" babel.config.js .babelrc .babelrc.js babel.config.json 2>/dev/null ||                     printf 'module.exports=function(api){api.cache(true);return{presets:["babel-preset-expo"]};};
' > babel.config.js;                 fi && 
                # ---- stub missing-asset-registry-path (Metro virtual module not resolved in release) ----
                # Metro normally aliases this to @react-native/assets-registry/registry at bundle time.
                # When that alias is missing, any PNG asset in node_modules triggers "Unable to resolve module".
                if [ ! -d node_modules/missing-asset-registry-path ]; then                     mkdir -p node_modules/missing-asset-registry-path &&                     if [ -f node_modules/@react-native/assets-registry/registry.js ]; then                         printf 'module.exports=require("@react-native/assets-registry/registry");' > node_modules/missing-asset-registry-path/index.js;                     else                         printf 'module.exports={registerAsset:function(){return 0;},getAssetByID:function(){return null;}};' > node_modules/missing-asset-registry-path/index.js;                     fi;                 fi && 
                # ---- stub @react-native-masked-view/masked-view if missing ----
                # Required by @react-navigation/elements but often not installed as a direct dependency.
                if [ ! -d node_modules/@react-native-masked-view/masked-view ]; then                     mkdir -p node_modules/@react-native-masked-view/masked-view &&                     printf '{"name":"@react-native-masked-view/masked-view","version":"0.1.11","main":"index.js"}' > node_modules/@react-native-masked-view/masked-view/package.json &&                     printf 'const React=require("react");const {View}=require("react-native");function MaskedView(p){return React.createElement(View,p.style?{style:p.style}:{},p.children);}module.exports=MaskedView;module.exports.default=MaskedView;' > node_modules/@react-native-masked-view/masked-view/index.js;                 fi && 
                export PATH="/app/node_modules/.bin:$PATH" &&                 cd android && 
                chmod +x gradlew && 
                # ---- inject fallback repositories via Gradle init script ----
                mkdir -p $GRADLE_USER_HOME/init.d &&                 echo 'gradle.beforeProject {project ->' > $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  project.buildscript.repositories {' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://maven.google.com"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://repo1.maven.org/maven2"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://plugins.gradle.org/m2/"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://jitpack.io"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  }' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  project.repositories {' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://maven.google.com"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://repo1.maven.org/maven2"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://plugins.gradle.org/m2/"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://jitpack.io"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  }' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '}' >> $GRADLE_USER_HOME/init.d/repos.gradle && 
                # ---- patch settings.gradle to use local react-native CLI (avoids npx failures) ----
                sed -i 's/autolinkLibrariesWithCommand()/autolinkLibrariesWithCommand("node node_modules\/.bin\/react-native config")/' settings.gradle 2>/dev/null || true && 
                # ---- disable Sentry source map upload (no credentials in CI) ----
                export SENTRY_DISABLE_AUTO_UPLOAD=true &&                 echo "sentryUploadEnabled=false" >> gradle.properties 2>/dev/null || true && 
                # ---- enable ABI splits ----
                if grep -q 'splits' app/build.gradle 2>/dev/null; then                     sed -i 's/enable false/enable true/' app/build.gradle || true;                 else                     sed -i '/^android[[:space:]]*{/a\    splits {\n        abi {\n            reset()\n            enable true\n            universalApk false\n            include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"\n        }\n    }' app/build.gradle || true;                 fi && 
                # ---- enable R8 ----
                sed -i 's/enableProguardInReleaseBuilds = false/enableProguardInReleaseBuilds = true/' app/build.gradle || true && 
                # ---- sign release with debug key ----
                sed -i '/buildTypes/,/}/s/release {/release {
            signingConfig signingConfigs.debug/' app/build.gradle || true && 
                # ---- pre-resolve AAR transforms so CMake finds prefab paths ----
                ./gradlew :app:dependencies --configuration releaseCompileClasspath --no-daemon > /dev/null 2>&1 || true && 
                # ---- build release apk ----
                ./gradlew assembleRelease --no-daemon || exit 1 &&                     
                APK_PATH="app/build/outputs/apk/release"

                if ! ls $APK_PATH/*.apk 1> /dev/null 2>&1; then
                    echo "ERROR: APK not generated"
                    exit 1
                fi

                # ---- copy output ----
                cp app/build/outputs/apk/release/*.apk /output/r8/

                # ---- copy TPL metadata ----
                [ -f ../package.json ] && cp ../package.json /output/r8/ || true
                [ -f ../package-lock.json ] && cp ../package-lock.json /output/r8/ || true
                [ -f ../yarn.lock ] && cp ../yarn.lock /output/r8/ || true
                [ -f ../pnpm-lock.yaml ] && cp ../pnpm-lock.yaml /output/r8/ || true
                [ -f app/build.gradle ] && cp app/build.gradle /output/r8/android-build.gradle || true
                [ -f build.gradle ] && cp build.gradle /output/r8/root-build.gradle || true
                [ -f build.gradle.kts ] && cp build.gradle.kts /output/r8/root-build.gradle.kts || true
                [ -f settings.gradle ] && cp settings.gradle /output/r8/ || true
                [ -f settings.gradle.kts ] && cp settings.gradle.kts /output/r8/ || true
                [ -f gradle/libs.versions.toml ] && cp gradle/libs.versions.toml /output/r8/ || true
                find . -name "*.gradle" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true
                find . -name "*.gradle.kts" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true
                mkdir -p /output/r8/libs
                find . -name "*.jar" -not -name "gradle-wrapper.jar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true
                find . -name "*.aar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true
                find . -name "*.so" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true
                    
npm warn deprecated @babel/plugin-proposal-optional-catch-binding@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.
npm warn deprecated @babel/plugin-proposal-numeric-separator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.
npm warn deprecated @babel/plugin-proposal-nullish-coalescing-operator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.
npm warn deprecated @babel/plugin-proposal-class-properties@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
npm warn deprecated @babel/plugin-proposal-optional-chaining@7.21.0: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.
npm warn deprecated @babel/plugin-proposal-async-generator-functions@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.
npm warn deprecated @babel/plugin-proposal-object-rest-spread@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.
npm warn deprecated uglify-es@3.3.9: support for ECMAScript is superseded by `uglify-js` as of v3.13.0

added 1166 packages, and audited 1167 packages in 13s

140 packages are looking for funding
  run `npm fund` for details

43 vulnerabilities (5 low, 12 moderate, 24 high, 2 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.
sed: -e expression #1, char 37: unterminated `s' command
To honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/8.0.1/userguide/gradle_daemon.html#sec:disabling_the_daemon.
Daemon will be stopped at the end of the build 
> Task :gradle-plugin:compileKotlin UP-TO-DATE
> Task :gradle-plugin:compileJava NO-SOURCE
> Task :gradle-plugin:pluginDescriptors UP-TO-DATE
> Task :gradle-plugin:processResources UP-TO-DATE
> Task :gradle-plugin:classes UP-TO-DATE
> Task :gradle-plugin:jar UP-TO-DATE
> Task :gradle-plugin:inspectClassesForKotlinIC UP-TO-DATE

FAILURE: Build failed with an exception.

* Where:
Build file '/app/android/app/build.gradle' line: 1

* What went wrong:
A problem occurred evaluating project ':app'.
> Failed to apply plugin 'com.android.internal.application'.
   > Cannot parse project property android.disableAutomaticComponentCreation='truesentryUploadEnabled=false' of type 'class java.lang.String' as boolean. Expected 'true' or 'false'.

* 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

BUILD FAILED in 12s
5 actionable tasks: 5 up-to-date

> echo Build failed with Node 18 and jdk version 17 with the following error: Command '['docker', 'run', '--rm', '-v', '/home/ubuntu/storage/extracted/Sureshkumar041-iicab/iicab-c3398530d3984efd132546be941a0165a3ac6566:/source:ro', '-v', '/home/ubuntu/BachelorsThesis/scripts/RN/output/Sureshkumar041-iicab:/output', '-v', '/home/ubuntu/.npm:/root/.npm', 'react-android:18-jdk17', 'bash', '-c', '\n                set -e\n\n                cp -r /source/. /app &&                 cd /app && \n                # ---- install deps (yarn or npm) ----\n                if [ -f yarn.lock ]; then\n                    yarn install;\n                else\n                    npm install --ignore-scripts;\n                fi && \n                # ---- stub missing parent package.json (monorepo metro configs) ----\n                [ ! -f ../package.json ] && cp package.json ../package.json 2>/dev/null || true && \n                # ---- patch toReversed (Node <20 compat) ----\n                find node_modules -name "loadConfig.js" -path "*/metro-config/*" -exec sed -i \'s/\\.toReversed()/.slice().reverse()/g\' {} \\; 2>/dev/null || true && \n                # ---- patch missing expo/AppEntry ----\n                if grep -q \'"main".*expo/AppEntry\' package.json 2>/dev/null &&                    [ ! -f node_modules/expo/AppEntry.js ] && [ ! -f node_modules/expo/AppEntry.ts ]; then                     node -e "const fs=require(\'fs\'); const p=JSON.parse(fs.readFileSync(\'package.json\',\'utf8\')); if(fs.existsSync(\'index.js\')){p.main=\'index.js\'; fs.writeFileSync(\'package.json\',JSON.stringify(p,null,2));}" 2>/dev/null || true;                 fi && \n                # ---- patch broken metro config (ESM-only, null-returning, or monorepo-only) ----\n                # NOTE: do NOT replace configs that merely use expo/metro-config — those carry\n                # Expo-specific resolver paths (watchFolders, extraNodeModules) needed for\n                # packages like @react-native-masked-view/masked-view to resolve.\n                if grep -q \'react-native-monorepo-config\' metro.config.js 2>/dev/null ||                    ! node -e "const c=require(\'./metro.config.js\'); if(!c||typeof c!==\'object\') process.exit(1);" 2>/dev/null; then                     if [ -d node_modules/@react-native/metro-config ]; then                         printf \'const {getDefaultConfig, mergeConfig} = require("@react-native/metro-config");\nmodule.exports = mergeConfig(getDefaultConfig(__dirname), {});\n\' > metro.config.js;                     else                         printf \'const {getDefaultConfig} = require("metro-config");\nmodule.exports = getDefaultConfig(__dirname);\n\' > metro.config.js;                     fi;                 fi && \n                # ---- stub missing google-services.json (Firebase/Expo prebuild) ----\n                if [ ! -f google-services.json ]; then                     python3 -c "import json; open(\'google-services.json\',\'w\').write(json.dumps({\'project_info\':{\'project_number\':\'000000000000\',\'project_id\':\'stub\',\'storage_bucket\':\'stub.appspot.com\'},\'client\':[{\'client_info\':{\'mobilesdk_app_id\':\'1:000000000000:android:0000000000000000\',\'android_client_info\':{\'package_name\':\'com.stub\'}},\'oauth_client\':[],\'api_key\':[{\'current_key\':\'stub\'}],\'services\':{\'appinvite_service\':{\'other_platform_oauth_client\':[]}}}],\'configuration_version\':\'1\'}))" 2>/dev/null || true;                 fi && \n                # ---- detect expo ----\n                if grep -q \'"expo"\' package.json && [ ! -d android ]; then\n                    echo "Expo project detected";\n                    CI=1 npx --yes expo prebuild --platform android\n                fi && \n                # ---- fix expo/metro-config: serializer + Flow transformIgnorePatterns ----\n                # Runs AFTER prebuild because prebuild generates metro.config.js for managed-workflow\n                # projects — patching before prebuild would be overwritten by the generated file.\n                # Fix 1: remove customSerializer that returns JS string instead of JSON\n                #   ("var __BUND..." → "Serializer did not return expected format").\n                # Fix 2: add transformIgnorePatterns so expo/src/Expo.ts goes through Babel\n                #   (default pattern excludes all node_modules → raw Flow types → SyntaxError).\n                if [ -f metro.config.js ] && [ -d node_modules/expo ] &&                    ( grep -q \'expo/metro-config\\|@expo/metro-config\' metro.config.js 2>/dev/null ||                      ! grep -q \'transformIgnorePatterns\' metro.config.js 2>/dev/null ); then                     cp metro.config.js metro.config.orig.js &&                     printf \'const c=require("./metro.config.orig.js");const r=Object.assign({},c);if(r.serializer){r.serializer=Object.assign({},r.serializer);delete r.serializer.customSerializer;}r.transformer=Object.assign({},r.transformer||{});if(!r.transformer.transformIgnorePatterns){r.transformer.transformIgnorePatterns=["node_modules/(?!(react-native|@react-native|expo|@expo|@unimodules|react-clone-referenced-element|@react-navigation|native-base)/)"];}module.exports=r;\\n\' > metro.config.js;                 fi && \n                # ---- stub missing metro watchFolders paths ----\n                mkdir -p /src 2>/dev/null || true && \n                # ---- fix babel configs that use react-native-builder-bob ----\n                # builder-bob is a library-dev tool; its getConfig() throws "Couldn\'t determine the source\n                # directory" when built outside the library\'s own workspace. Replace with a standard preset.\n                if grep -ql \'react-native-builder-bob\' babel.config.js babel.config.json .babelrc .babelrc.js 2>/dev/null; then                     if [ -d node_modules/babel-preset-expo ]; then                         printf \'module.exports=function(api){api.cache(true);return{presets:["babel-preset-expo"]};};\n\' > babel.config.js;                     elif [ -d node_modules/@react-native/babel-preset ]; then                         printf \'module.exports={presets:["module:@react-native/babel-preset"]};\' > babel.config.js;                     else                         printf \'module.exports={presets:["module:metro-react-native-babel-preset"]};\' > babel.config.js;                     fi;                 fi && \n                # ---- ensure TypeScript babel support (fixes \'interface\' SyntaxError in metro bundling) ----\n                if [ -d node_modules/babel-preset-expo ]; then                     grep -ql "expo\\|typescript" babel.config.js .babelrc .babelrc.js babel.config.json 2>/dev/null ||                     printf \'module.exports=function(api){api.cache(true);return{presets:["babel-preset-expo"]};};\n\' > babel.config.js;                 fi && \n                # ---- stub missing-asset-registry-path (Metro virtual module not resolved in release) ----\n                # Metro normally aliases this to @react-native/assets-registry/registry at bundle time.\n                # When that alias is missing, any PNG asset in node_modules triggers "Unable to resolve module".\n                if [ ! -d node_modules/missing-asset-registry-path ]; then                     mkdir -p node_modules/missing-asset-registry-path &&                     if [ -f node_modules/@react-native/assets-registry/registry.js ]; then                         printf \'module.exports=require("@react-native/assets-registry/registry");\' > node_modules/missing-asset-registry-path/index.js;                     else                         printf \'module.exports={registerAsset:function(){return 0;},getAssetByID:function(){return null;}};\' > node_modules/missing-asset-registry-path/index.js;                     fi;                 fi && \n                # ---- stub @react-native-masked-view/masked-view if missing ----\n                # Required by @react-navigation/elements but often not installed as a direct dependency.\n                if [ ! -d node_modules/@react-native-masked-view/masked-view ]; then                     mkdir -p node_modules/@react-native-masked-view/masked-view &&                     printf \'{"name":"@react-native-masked-view/masked-view","version":"0.1.11","main":"index.js"}\' > node_modules/@react-native-masked-view/masked-view/package.json &&                     printf \'const React=require("react");const {View}=require("react-native");function MaskedView(p){return React.createElement(View,p.style?{style:p.style}:{},p.children);}module.exports=MaskedView;module.exports.default=MaskedView;\' > node_modules/@react-native-masked-view/masked-view/index.js;                 fi && \n                export PATH="/app/node_modules/.bin:$PATH" &&                 cd android && \n                chmod +x gradlew && \n                # ---- inject fallback repositories via Gradle init script ----\n                mkdir -p $GRADLE_USER_HOME/init.d &&                 echo \'gradle.beforeProject {project ->\' > $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  project.buildscript.repositories {\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://maven.google.com"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://repo1.maven.org/maven2"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://plugins.gradle.org/m2/"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://jitpack.io"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  }\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  project.repositories {\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://maven.google.com"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://repo1.maven.org/maven2"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://plugins.gradle.org/m2/"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://jitpack.io"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  }\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'}\' >> $GRADLE_USER_HOME/init.d/repos.gradle && \n                # ---- patch settings.gradle to use local react-native CLI (avoids npx failures) ----\n                sed -i \'s/autolinkLibrariesWithCommand()/autolinkLibrariesWithCommand("node node_modules\\/.bin\\/react-native config")/\' settings.gradle 2>/dev/null || true && \n                # ---- disable Sentry source map upload (no credentials in CI) ----\n                export SENTRY_DISABLE_AUTO_UPLOAD=true &&                 echo "sentryUploadEnabled=false" >> gradle.properties 2>/dev/null || true && \n                # ---- enable ABI splits ----\n                if grep -q \'splits\' app/build.gradle 2>/dev/null; then                     sed -i \'s/enable false/enable true/\' app/build.gradle || true;                 else                     sed -i \'/^android[[:space:]]*{/a\\    splits {\\n        abi {\\n            reset()\\n            enable true\\n            universalApk false\\n            include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"\\n        }\\n    }\' app/build.gradle || true;                 fi && \n                # ---- enable R8 ----\n                sed -i \'s/enableProguardInReleaseBuilds = false/enableProguardInReleaseBuilds = true/\' app/build.gradle || true && \n                # ---- sign release with debug key ----\n                sed -i \'/buildTypes/,/}/s/release {/release {\n            signingConfig signingConfigs.debug/\' app/build.gradle || true && \n                # ---- pre-resolve AAR transforms so CMake finds prefab paths ----\n                ./gradlew :app:dependencies --configuration releaseCompileClasspath --no-daemon > /dev/null 2>&1 || true && \n                # ---- build release apk ----\n                ./gradlew assembleRelease --no-daemon || exit 1 &&                     \n                APK_PATH="app/build/outputs/apk/release"\n\n                if ! ls $APK_PATH/*.apk 1> /dev/null 2>&1; then\n                    echo "ERROR: APK not generated"\n                    exit 1\n                fi\n\n                # ---- copy output ----\n                cp app/build/outputs/apk/release/*.apk /output/r8/\n\n                # ---- copy TPL metadata ----\n                [ -f ../package.json ] && cp ../package.json /output/r8/ || true\n                [ -f ../package-lock.json ] && cp ../package-lock.json /output/r8/ || true\n                [ -f ../yarn.lock ] && cp ../yarn.lock /output/r8/ || true\n                [ -f ../pnpm-lock.yaml ] && cp ../pnpm-lock.yaml /output/r8/ || true\n                [ -f app/build.gradle ] && cp app/build.gradle /output/r8/android-build.gradle || true\n                [ -f build.gradle ] && cp build.gradle /output/r8/root-build.gradle || true\n                [ -f build.gradle.kts ] && cp build.gradle.kts /output/r8/root-build.gradle.kts || true\n                [ -f settings.gradle ] && cp settings.gradle /output/r8/ || true\n                [ -f settings.gradle.kts ] && cp settings.gradle.kts /output/r8/ || true\n                [ -f gradle/libs.versions.toml ] && cp gradle/libs.versions.toml /output/r8/ || true\n                find . -name "*.gradle" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true\n                find . -name "*.gradle.kts" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true\n                mkdir -p /output/r8/libs\n                find . -name "*.jar" -not -name "gradle-wrapper.jar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n                find . -name "*.aar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n                find . -name "*.so" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n                    ']' returned non-zero exit status 1.
Build failed with Node 18 and jdk version 17 with the following error: Command '['docker', 'run', '--rm', '-v', '/home/ubuntu/storage/extracted/Sureshkumar041-iicab/iicab-c3398530d3984efd132546be941a0165a3ac6566:/source:ro', '-v', '/home/ubuntu/BachelorsThesis/scripts/RN/output/Sureshkumar041-iicab:/output', '-v', '/home/ubuntu/.npm:/root/.npm', 'react-android:18-jdk17', 'bash', '-c', '\n                set -e\n\n                cp -r /source/. /app &&                 cd /app && \n                # ---- install deps (yarn or npm) ----\n                if [ -f yarn.lock ]; then\n                    yarn install;\n                else\n                    npm install --ignore-scripts;\n                fi && \n                # ---- stub missing parent package.json (monorepo metro configs) ----\n                [ ! -f ../package.json ] && cp package.json ../package.json 2>/dev/null || true && \n                # ---- patch toReversed (Node <20 compat) ----\n                find node_modules -name "loadConfig.js" -path "*/metro-config/*" -exec sed -i \'s/\\.toReversed()/.slice().reverse()/g\' {} \\; 2>/dev/null || true && \n                # ---- patch missing expo/AppEntry ----\n                if grep -q \'"main".*expo/AppEntry\' package.json 2>/dev/null &&                    [ ! -f node_modules/expo/AppEntry.js ] && [ ! -f node_modules/expo/AppEntry.ts ]; then                     node -e "const fs=require(\'fs\'); const p=JSON.parse(fs.readFileSync(\'package.json\',\'utf8\')); if(fs.existsSync(\'index.js\')){p.main=\'index.js\'; fs.writeFileSync(\'package.json\',JSON.stringify(p,null,2));}" 2>/dev/null || true;                 fi && \n                # ---- patch broken metro config (ESM-only, null-returning, or monorepo-only) ----\n                # NOTE: do NOT replace configs that merely use expo/metro-config — those carry\n                # Expo-specific resolver paths (watchFolders, extraNodeModules) needed for\n                # packages like @react-native-masked-view/masked-view to resolve.\n                if grep -q \'react-native-monorepo-config\' metro.config.js 2>/dev/null ||                    ! node -e "const c=require(\'./metro.config.js\'); if(!c||typeof c!==\'object\') process.exit(1);" 2>/dev/null; then                     if [ -d node_modules/@react-native/metro-config ]; then                         printf \'const {getDefaultConfig, mergeConfig} = require("@react-native/metro-config");\nmodule.exports = mergeConfig(getDefaultConfig(__dirname), {});\n\' > metro.config.js;                     else                         printf \'const {getDefaultConfig} = require("metro-config");\nmodule.exports = getDefaultConfig(__dirname);\n\' > metro.config.js;                     fi;                 fi && \n                # ---- stub missing google-services.json (Firebase/Expo prebuild) ----\n                if [ ! -f google-services.json ]; then                     python3 -c "import json; open(\'google-services.json\',\'w\').write(json.dumps({\'project_info\':{\'project_number\':\'000000000000\',\'project_id\':\'stub\',\'storage_bucket\':\'stub.appspot.com\'},\'client\':[{\'client_info\':{\'mobilesdk_app_id\':\'1:000000000000:android:0000000000000000\',\'android_client_info\':{\'package_name\':\'com.stub\'}},\'oauth_client\':[],\'api_key\':[{\'current_key\':\'stub\'}],\'services\':{\'appinvite_service\':{\'other_platform_oauth_client\':[]}}}],\'configuration_version\':\'1\'}))" 2>/dev/null || true;                 fi && \n                # ---- detect expo ----\n                if grep -q \'"expo"\' package.json && [ ! -d android ]; then\n                    echo "Expo project detected";\n                    CI=1 npx --yes expo prebuild --platform android\n                fi && \n                # ---- fix expo/metro-config: serializer + Flow transformIgnorePatterns ----\n                # Runs AFTER prebuild because prebuild generates metro.config.js for managed-workflow\n                # projects — patching before prebuild would be overwritten by the generated file.\n                # Fix 1: remove customSerializer that returns JS string instead of JSON\n                #   ("var __BUND..." → "Serializer did not return expected format").\n                # Fix 2: add transformIgnorePatterns so expo/src/Expo.ts goes through Babel\n                #   (default pattern excludes all node_modules → raw Flow types → SyntaxError).\n                if [ -f metro.config.js ] && [ -d node_modules/expo ] &&                    ( grep -q \'expo/metro-config\\|@expo/metro-config\' metro.config.js 2>/dev/null ||                      ! grep -q \'transformIgnorePatterns\' metro.config.js 2>/dev/null ); then                     cp metro.config.js metro.config.orig.js &&                     printf \'const c=require("./metro.config.orig.js");const r=Object.assign({},c);if(r.serializer){r.serializer=Object.assign({},r.serializer);delete r.serializer.customSerializer;}r.transformer=Object.assign({},r.transformer||{});if(!r.transformer.transformIgnorePatterns){r.transformer.transformIgnorePatterns=["node_modules/(?!(react-native|@react-native|expo|@expo|@unimodules|react-clone-referenced-element|@react-navigation|native-base)/)"];}module.exports=r;\\n\' > metro.config.js;                 fi && \n                # ---- stub missing metro watchFolders paths ----\n                mkdir -p /src 2>/dev/null || true && \n                # ---- fix babel configs that use react-native-builder-bob ----\n                # builder-bob is a library-dev tool; its getConfig() throws "Couldn\'t determine the source\n                # directory" when built outside the library\'s own workspace. Replace with a standard preset.\n                if grep -ql \'react-native-builder-bob\' babel.config.js babel.config.json .babelrc .babelrc.js 2>/dev/null; then                     if [ -d node_modules/babel-preset-expo ]; then                         printf \'module.exports=function(api){api.cache(true);return{presets:["babel-preset-expo"]};};\n\' > babel.config.js;                     elif [ -d node_modules/@react-native/babel-preset ]; then                         printf \'module.exports={presets:["module:@react-native/babel-preset"]};\' > babel.config.js;                     else                         printf \'module.exports={presets:["module:metro-react-native-babel-preset"]};\' > babel.config.js;                     fi;                 fi && \n                # ---- ensure TypeScript babel support (fixes \'interface\' SyntaxError in metro bundling) ----\n                if [ -d node_modules/babel-preset-expo ]; then                     grep -ql "expo\\|typescript" babel.config.js .babelrc .babelrc.js babel.config.json 2>/dev/null ||                     printf \'module.exports=function(api){api.cache(true);return{presets:["babel-preset-expo"]};};\n\' > babel.config.js;                 fi && \n                # ---- stub missing-asset-registry-path (Metro virtual module not resolved in release) ----\n                # Metro normally aliases this to @react-native/assets-registry/registry at bundle time.\n                # When that alias is missing, any PNG asset in node_modules triggers "Unable to resolve module".\n                if [ ! -d node_modules/missing-asset-registry-path ]; then                     mkdir -p node_modules/missing-asset-registry-path &&                     if [ -f node_modules/@react-native/assets-registry/registry.js ]; then                         printf \'module.exports=require("@react-native/assets-registry/registry");\' > node_modules/missing-asset-registry-path/index.js;                     else                         printf \'module.exports={registerAsset:function(){return 0;},getAssetByID:function(){return null;}};\' > node_modules/missing-asset-registry-path/index.js;                     fi;                 fi && \n                # ---- stub @react-native-masked-view/masked-view if missing ----\n                # Required by @react-navigation/elements but often not installed as a direct dependency.\n                if [ ! -d node_modules/@react-native-masked-view/masked-view ]; then                     mkdir -p node_modules/@react-native-masked-view/masked-view &&                     printf \'{"name":"@react-native-masked-view/masked-view","version":"0.1.11","main":"index.js"}\' > node_modules/@react-native-masked-view/masked-view/package.json &&                     printf \'const React=require("react");const {View}=require("react-native");function MaskedView(p){return React.createElement(View,p.style?{style:p.style}:{},p.children);}module.exports=MaskedView;module.exports.default=MaskedView;\' > node_modules/@react-native-masked-view/masked-view/index.js;                 fi && \n                export PATH="/app/node_modules/.bin:$PATH" &&                 cd android && \n                chmod +x gradlew && \n                # ---- inject fallback repositories via Gradle init script ----\n                mkdir -p $GRADLE_USER_HOME/init.d &&                 echo \'gradle.beforeProject {project ->\' > $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  project.buildscript.repositories {\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://maven.google.com"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://repo1.maven.org/maven2"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://plugins.gradle.org/m2/"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://jitpack.io"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  }\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  project.repositories {\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://maven.google.com"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://repo1.maven.org/maven2"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://plugins.gradle.org/m2/"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://jitpack.io"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  }\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'}\' >> $GRADLE_USER_HOME/init.d/repos.gradle && \n                # ---- patch settings.gradle to use local react-native CLI (avoids npx failures) ----\n                sed -i \'s/autolinkLibrariesWithCommand()/autolinkLibrariesWithCommand("node node_modules\\/.bin\\/react-native config")/\' settings.gradle 2>/dev/null || true && \n                # ---- disable Sentry source map upload (no credentials in CI) ----\n                export SENTRY_DISABLE_AUTO_UPLOAD=true &&                 echo "sentryUploadEnabled=false" >> gradle.properties 2>/dev/null || true && \n                # ---- enable ABI splits ----\n                if grep -q \'splits\' app/build.gradle 2>/dev/null; then                     sed -i \'s/enable false/enable true/\' app/build.gradle || true;                 else                     sed -i \'/^android[[:space:]]*{/a\\    splits {\\n        abi {\\n            reset()\\n            enable true\\n            universalApk false\\n            include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"\\n        }\\n    }\' app/build.gradle || true;                 fi && \n                # ---- enable R8 ----\n                sed -i \'s/enableProguardInReleaseBuilds = false/enableProguardInReleaseBuilds = true/\' app/build.gradle || true && \n                # ---- sign release with debug key ----\n                sed -i \'/buildTypes/,/}/s/release {/release {\n            signingConfig signingConfigs.debug/\' app/build.gradle || true && \n                # ---- pre-resolve AAR transforms so CMake finds prefab paths ----\n                ./gradlew :app:dependencies --configuration releaseCompileClasspath --no-daemon > /dev/null 2>&1 || true && \n                # ---- build release apk ----\n                ./gradlew assembleRelease --no-daemon || exit 1 &&                     \n                APK_PATH="app/build/outputs/apk/release"\n\n                if ! ls $APK_PATH/*.apk 1> /dev/null 2>&1; then\n                    echo "ERROR: APK not generated"\n                    exit 1\n                fi\n\n                # ---- copy output ----\n                cp app/build/outputs/apk/release/*.apk /output/r8/\n\n                # ---- copy TPL metadata ----\n                [ -f ../package.json ] && cp ../package.json /output/r8/ || true\n                [ -f ../package-lock.json ] && cp ../package-lock.json /output/r8/ || true\n                [ -f ../yarn.lock ] && cp ../yarn.lock /output/r8/ || true\n                [ -f ../pnpm-lock.yaml ] && cp ../pnpm-lock.yaml /output/r8/ || true\n                [ -f app/build.gradle ] && cp app/build.gradle /output/r8/android-build.gradle || true\n                [ -f build.gradle ] && cp build.gradle /output/r8/root-build.gradle || true\n                [ -f build.gradle.kts ] && cp build.gradle.kts /output/r8/root-build.gradle.kts || true\n                [ -f settings.gradle ] && cp settings.gradle /output/r8/ || true\n                [ -f settings.gradle.kts ] && cp settings.gradle.kts /output/r8/ || true\n                [ -f gradle/libs.versions.toml ] && cp gradle/libs.versions.toml /output/r8/ || true\n                find . -name "*.gradle" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true\n                find . -name "*.gradle.kts" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true\n                mkdir -p /output/r8/libs\n                find . -name "*.jar" -not -name "gradle-wrapper.jar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n                find . -name "*.aar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n                find . -name "*.so" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n                    ']' returned non-zero exit status 1.

> echo Attempting build for Sureshkumar041-iicab with Node 20 and jdk 17
Attempting build for Sureshkumar041-iicab with Node 20 and jdk 17

> docker run --rm -v /home/ubuntu/storage/extracted/Sureshkumar041-iicab/iicab-c3398530d3984efd132546be941a0165a3ac6566:/source:ro -v /home/ubuntu/BachelorsThesis/scripts/RN/output/Sureshkumar041-iicab:/output -v /home/ubuntu/.npm:/root/.npm react-android:20-jdk17 bash -c 
                set -e

                cp -r /source/. /app &&                 cd /app && 
                # ---- install deps (yarn or npm) ----
                if [ -f yarn.lock ]; then
                    yarn install;
                else
                    npm install --ignore-scripts;
                fi && 
                # ---- stub missing google-services.json (Firebase/Expo prebuild) ----
                if [ ! -f google-services.json ]; then                     python3 -c "import json; open('google-services.json','w').write(json.dumps({'project_info':{'project_number':'000000000000','project_id':'stub','storage_bucket':'stub.appspot.com'},'client':[{'client_info':{'mobilesdk_app_id':'1:000000000000:android:0000000000000000','android_client_info':{'package_name':'com.stub'}},'oauth_client':[],'api_key':[{'current_key':'stub'}],'services':{'appinvite_service':{'other_platform_oauth_client':[]}}}],'configuration_version':'1'}))" 2>/dev/null || true;                 fi && 
                # ---- detect expo ----
                if grep -q '"expo"' package.json && [ ! -d android ]; then
                    echo "Expo project detected";
                    CI=1 npx --yes expo prebuild --platform android
                fi && 
                export PATH="/app/node_modules/.bin:$PATH" &&                 cd android && 
                chmod +x gradlew && 
                # ---- inject fallback repositories via Gradle init script ----
                mkdir -p $GRADLE_USER_HOME/init.d &&                 echo 'gradle.beforeProject {project ->' > $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  project.buildscript.repositories {' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://maven.google.com"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://repo1.maven.org/maven2"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://plugins.gradle.org/m2/"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://jitpack.io"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  }' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  project.repositories {' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://maven.google.com"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://repo1.maven.org/maven2"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://plugins.gradle.org/m2/"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://jitpack.io"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  }' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '}' >> $GRADLE_USER_HOME/init.d/repos.gradle && 
                # ---- patch settings.gradle to use local react-native CLI (avoids npx failures) ----
                sed -i 's/autolinkLibrariesWithCommand()/autolinkLibrariesWithCommand("node node_modules\/.bin\/react-native config")/' settings.gradle 2>/dev/null || true && 
                # ---- clean gradle ----
                (./gradlew clean || true) && 
                # ---- pre-resolve AAR transforms so CMake finds prefab paths ----
                ./gradlew :app:dependencies --configuration debugCompileClasspath --no-daemon > /dev/null 2>&1 || true && 
                # ---- enable ABI splits ----
                if grep -q 'splits' app/build.gradle 2>/dev/null; then                     sed -i 's/enable false/enable true/' app/build.gradle || true;                 else                     sed -i '/^android[[:space:]]*{/a\    splits {\n        abi {\n            reset()\n            enable true\n            universalApk false\n            include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"\n        }\n    }' app/build.gradle || true;                 fi && 
                # ---- build debug apk ----
                ./gradlew assembleDebug --no-daemon || exit 1 && 
                APK_PATH="app/build/outputs/apk/debug"

                if ! ls $APK_PATH/*.apk 1> /dev/null 2>&1; then
                    echo "ERROR: APK not generated"
                    exit 1
                fi
                # ---- copy output ----
                cp app/build/outputs/apk/debug/*.apk /output/

                # ---- copy TPL metadata ----
                [ -f ../package.json ] && cp ../package.json /output/ || true
                [ -f ../package-lock.json ] && cp ../package-lock.json /output/ || true
                [ -f ../yarn.lock ] && cp ../yarn.lock /output/ || true
                [ -f ../pnpm-lock.yaml ] && cp ../pnpm-lock.yaml /output/ || true
                [ -f app/build.gradle ] && cp app/build.gradle /output/android-build.gradle || true
                [ -f build.gradle ] && cp build.gradle /output/root-build.gradle || true
                [ -f build.gradle.kts ] && cp build.gradle.kts /output/root-build.gradle.kts || true
                [ -f settings.gradle ] && cp settings.gradle /output/ || true
                [ -f settings.gradle.kts ] && cp settings.gradle.kts /output/ || true
                [ -f gradle/libs.versions.toml ] && cp gradle/libs.versions.toml /output/ || true
                find . -name "*.gradle" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/ 2>/dev/null; done || true
                find . -name "*.gradle.kts" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/ 2>/dev/null; done || true
                mkdir -p /output/libs
                find . -name "*.jar" -not -name "gradle-wrapper.jar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/libs/ 2>/dev/null; done || true
                find . -name "*.aar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/libs/ 2>/dev/null; done || true
                find . -name "*.so" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/libs/ 2>/dev/null; done || true
                    
npm warn deprecated @babel/plugin-proposal-class-properties@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
npm warn deprecated @babel/plugin-proposal-optional-catch-binding@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.
npm warn deprecated @babel/plugin-proposal-numeric-separator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.
npm warn deprecated @babel/plugin-proposal-nullish-coalescing-operator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.
npm warn deprecated @babel/plugin-proposal-optional-chaining@7.21.0: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.
npm warn deprecated @babel/plugin-proposal-async-generator-functions@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.
npm warn deprecated @babel/plugin-proposal-object-rest-spread@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.
npm warn deprecated uglify-es@3.3.9: support for ECMAScript is superseded by `uglify-js` as of v3.13.0

added 1166 packages, and audited 1167 packages in 12s

140 packages are looking for funding
  run `npm fund` for details

43 vulnerabilities (5 low, 12 moderate, 24 high, 2 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.
Downloading https://services.gradle.org/distributions/gradle-8.0.1-all.zip
...............10%................20%................30%................40%................50%................60%................70%................80%................90%................100%

Welcome to Gradle 8.0.1!

Here are the highlights of this release:
 - Improvements to the Kotlin DSL
 - Fine-grained parallelism from the first build with configuration cache
 - Configurable Gradle user home cache cleanup

For more details see https://docs.gradle.org/8.0.1/release-notes.html

To honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/8.0.1/userguide/gradle_daemon.html#sec:disabling_the_daemon.
Daemon will be stopped at the end of the build 
> Task :gradle-plugin:pluginDescriptors
> Task :gradle-plugin:processResources
> Task :gradle-plugin:compileKotlin
> Task :gradle-plugin:compileJava NO-SOURCE
> Task :gradle-plugin:classes
> Task :gradle-plugin:jar
> Task :gradle-plugin:inspectClassesForKotlinIC

> Configure project :react-native-reanimated
Android gradle plugin: 7.4.2
Gradle: 8.0.1
Checking the license for package NDK (Side by side) 23.1.7779620 in /opt/android/licenses
License for package NDK (Side by side) 23.1.7779620 accepted.
Preparing "Install NDK (Side by side) 23.1.7779620 (revision: 23.1.7779620)".
"Install NDK (Side by side) 23.1.7779620 (revision: 23.1.7779620)" ready.
Installing NDK (Side by side) 23.1.7779620 in /opt/android/ndk/23.1.7779620
"Install NDK (Side by side) 23.1.7779620 (revision: 23.1.7779620)" complete.
"Install NDK (Side by side) 23.1.7779620 (revision: 23.1.7779620)" finished.

> Task :app:clean UP-TO-DATE
> Task :react-native-community_checkbox:clean UP-TO-DATE
> Task :react-native-gesture-handler:clean UP-TO-DATE
> Task :react-native-reanimated:cleanCmakeCache
> Task :react-native-reanimated:externalNativeBuildCleanDebug
> Task :react-native-reanimated:externalNativeBuildCleanRelease
> Task :react-native-reanimated:clean
> Task :react-native-safe-area-context:clean UP-TO-DATE
> Task :react-native-screens:clean UP-TO-DATE
> Task :react-native-vector-icons:clean UP-TO-DATE

BUILD SUCCESSFUL in 3m 46s
15 actionable tasks: 9 executed, 6 up-to-date
To honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/8.0.1/userguide/gradle_daemon.html#sec:disabling_the_daemon.
Daemon will be stopped at the end of the build 
> Task :gradle-plugin:compileKotlin UP-TO-DATE
> Task :gradle-plugin:compileJava NO-SOURCE
> Task :gradle-plugin:pluginDescriptors UP-TO-DATE
> Task :gradle-plugin:processResources UP-TO-DATE
> Task :gradle-plugin:classes UP-TO-DATE
> Task :gradle-plugin:jar UP-TO-DATE
> Task :gradle-plugin:inspectClassesForKotlinIC UP-TO-DATE

> Configure project :react-native-reanimated
Android gradle plugin: 7.4.2
Gradle: 8.0.1
Checking the license for package Android SDK Build-Tools 30.0.3 in /opt/android/licenses
License for package Android SDK Build-Tools 30.0.3 accepted.
Preparing "Install Android SDK Build-Tools 30.0.3 (revision: 30.0.3)".
"Install Android SDK Build-Tools 30.0.3 (revision: 30.0.3)" ready.
Installing Android SDK Build-Tools 30.0.3 in /opt/android/build-tools/30.0.3
"Install Android SDK Build-Tools 30.0.3 (revision: 30.0.3)" complete.
"Install Android SDK Build-Tools 30.0.3 (revision: 30.0.3)" finished.
Checking the license for package Android SDK Platform 33 in /opt/android/licenses
License for package Android SDK Platform 33 accepted.
Preparing "Install Android SDK Platform 33 (revision: 3)".
"Install Android SDK Platform 33 (revision: 3)" ready.
Installing Android SDK Platform 33 in /opt/android/platforms/android-33
"Install Android SDK Platform 33 (revision: 3)" complete.
"Install Android SDK Platform 33 (revision: 3)" finished.
Checking the license for package Android SDK Build-Tools 33 in /opt/android/licenses
License for package Android SDK Build-Tools 33 accepted.
Preparing "Install Android SDK Build-Tools 33 (revision: 33.0.0)".
"Install Android SDK Build-Tools 33 (revision: 33.0.0)" ready.
Installing Android SDK Build-Tools 33 in /opt/android/build-tools/33.0.0
"Install Android SDK Build-Tools 33 (revision: 33.0.0)" complete.
"Install Android SDK Build-Tools 33 (revision: 33.0.0)" finished.

> Task :app:buildCodegenCLI SKIPPED
> Task :app:generateCodegenSchemaFromJavaScript SKIPPED
> Task :app:generateCodegenArtifactsFromSchema SKIPPED
> Task :app:generatePackageList
> Task :app:preBuild
> Task :app:preDebugBuild
> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE
> Task :react-native-community_checkbox:preBuild UP-TO-DATE
> Task :react-native-community_checkbox:preDebugBuild UP-TO-DATE
> Task :react-native-community_checkbox:compileDebugAidl NO-SOURCE
> Task :react-native-gesture-handler:preBuild UP-TO-DATE
> Task :react-native-gesture-handler:preDebugBuild UP-TO-DATE
> Task :react-native-reanimated:assertLatestReactNativeWithNewArchitectureTask SKIPPED
> Task :react-native-reanimated:assertMinimalReactNativeVersionTask SKIPPED
> Task :react-native-reanimated:assertNoMultipleInstances
> Task :react-native-reanimated:prepareHeadersForPrefab
> Task :react-native-reanimated:preBuild
> Task :react-native-reanimated:preDebugBuild
> Task :react-native-reanimated:compileDebugAidl NO-SOURCE
> Task :react-native-gesture-handler:compileDebugAidl NO-SOURCE
> Task :react-native-safe-area-context:preBuild UP-TO-DATE
> Task :react-native-safe-area-context:preDebugBuild UP-TO-DATE
> Task :react-native-safe-area-context:compileDebugAidl NO-SOURCE
> Task :react-native-screens:preBuild UP-TO-DATE
> Task :react-native-screens:preDebugBuild UP-TO-DATE
> Task :react-native-screens:compileDebugAidl NO-SOURCE
> Task :react-native-vector-icons:preBuild UP-TO-DATE
> Task :react-native-vector-icons:preDebugBuild UP-TO-DATE
> Task :react-native-vector-icons:compileDebugAidl NO-SOURCE
> Task :app:compileDebugAidl NO-SOURCE
> Task :react-native-community_checkbox:packageDebugRenderscript NO-SOURCE
> Task :react-native-gesture-handler:packageDebugRenderscript NO-SOURCE
> Task :react-native-reanimated:packageDebugRenderscript NO-SOURCE
> Task :react-native-safe-area-context:packageDebugRenderscript NO-SOURCE
> Task :react-native-screens:packageDebugRenderscript NO-SOURCE
> Task :react-native-vector-icons:packageDebugRenderscript NO-SOURCE
> Task :app:compileDebugRenderscript NO-SOURCE
> Task :app:generateDebugBuildConfig
> Task :app:javaPreCompileDebug
> Task :react-native-gesture-handler:writeDebugAarMetadata
> Task :react-native-community_checkbox:writeDebugAarMetadata
> Task :react-native-reanimated:writeDebugAarMetadata
> Task :react-native-safe-area-context:writeDebugAarMetadata
> Task :react-native-screens:writeDebugAarMetadata
> Task :react-native-vector-icons:writeDebugAarMetadata
> Task :app:generateDebugResValues
> Task :react-native-community_checkbox:compileDebugRenderscript NO-SOURCE
> Task :react-native-community_checkbox:generateDebugResValues
> Task :react-native-community_checkbox:generateDebugResources
> Task :app:checkDebugAarMetadata
> Task :react-native-community_checkbox:packageDebugResources
> Task :react-native-gesture-handler:compileDebugRenderscript NO-SOURCE
> Task :react-native-gesture-handler:generateDebugResValues
> Task :react-native-gesture-handler:generateDebugResources
> Task :react-native-gesture-handler:packageDebugResources
> Task :react-native-reanimated:compileDebugRenderscript NO-SOURCE
> Task :react-native-reanimated:generateDebugResValues
> Task :react-native-reanimated:generateDebugResources
> Task :react-native-reanimated:packageDebugResources
> Task :react-native-safe-area-context:compileDebugRenderscript NO-SOURCE
> Task :react-native-safe-area-context:generateDebugResValues
> Task :react-native-safe-area-context:generateDebugResources
> Task :react-native-safe-area-context:packageDebugResources
> Task :react-native-screens:compileDebugRenderscript NO-SOURCE
> Task :react-native-screens:generateDebugResValues
> Task :react-native-screens:generateDebugResources
> Task :react-native-screens:packageDebugResources
> Task :react-native-vector-icons:compileDebugRenderscript NO-SOURCE
> Task :react-native-vector-icons:generateDebugResValues
> Task :react-native-vector-icons:generateDebugResources
> Task :react-native-vector-icons:packageDebugResources
> Task :app:mapDebugSourceSetPaths
> Task :app:generateDebugResources
> Task :app:createDebugCompatibleScreenManifests
> Task :app:extractDeepLinksDebug
> Task :react-native-community_checkbox:extractDeepLinksDebug
> Task :react-native-gesture-handler:extractDeepLinksDebug
> Task :react-native-reanimated:extractDeepLinksDebug
> Task :react-native-safe-area-context:extractDeepLinksDebug
> Task :react-native-screens:extractDeepLinksDebug
> Task :react-native-vector-icons:extractDeepLinksDebug

> Task :react-native-safe-area-context:processDebugManifest
package="com.th3rdwave.safeareacontext" found in source AndroidManifest.xml: /app/node_modules/react-native-safe-area-context/android/src/main/AndroidManifest.xml.
Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated.
Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace
This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.

> Task :react-native-community_checkbox:processDebugManifest
package="com.reactnativecommunity.checkbox" found in source AndroidManifest.xml: /app/node_modules/@react-native-community/checkbox/android/src/main/AndroidManifest.xml.
Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated.
Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace
This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.

> Task :react-native-gesture-handler:processDebugManifest
package="com.swmansion.gesturehandler" found in source AndroidManifest.xml: /app/node_modules/react-native-gesture-handler/android/src/main/AndroidManifest.xml.
Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated.
Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace
This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.

> Task :react-native-screens:processDebugManifest
package="com.swmansion.rnscreens" found in source AndroidManifest.xml: /app/node_modules/react-native-screens/android/src/main/AndroidManifest.xml.
Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated.
Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace
This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.

> Task :react-native-vector-icons:processDebugManifest
package="com.oblador.vectoricons" found in source AndroidManifest.xml: /app/node_modules/react-native-vector-icons/android/src/main/AndroidManifest.xml.
Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated.
Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace
This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.

> Task :react-native-reanimated:processDebugManifest
package="com.swmansion.reanimated" found in source AndroidManifest.xml: /app/node_modules/react-native-reanimated/android/src/main/AndroidManifest.xml.
Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated.
Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace
This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.

> Task :app:mergeDebugResources
> Task :react-native-community_checkbox:compileDebugLibraryResources
> Task :app:processDebugMainManifest
> Task :app:processDebugManifest
> Task :react-native-gesture-handler:compileDebugLibraryResources
> Task :app:processDebugManifestForPackage
> Task :react-native-reanimated:compileDebugLibraryResources
> Task :react-native-reanimated:parseDebugLocalResources
> Task :react-native-community_checkbox:parseDebugLocalResources
> Task :react-native-safe-area-context:compileDebugLibraryResources
> Task :react-native-gesture-handler:parseDebugLocalResources
> Task :react-native-community_checkbox:generateDebugRFile
> Task :react-native-safe-area-context:parseDebugLocalResources
> Task :react-native-screens:parseDebugLocalResources
> Task :react-native-screens:compileDebugLibraryResources
> Task :react-native-vector-icons:compileDebugLibraryResources
> Task :react-native-reanimated:generateDebugRFile
> Task :react-native-safe-area-context:generateDebugRFile
> Task :react-native-screens:generateDebugRFile
> Task :react-native-community_checkbox:generateDebugBuildConfig
> Task :react-native-vector-icons:parseDebugLocalResources
> Task :react-native-community_checkbox:javaPreCompileDebug
> Task :react-native-gesture-handler:generateDebugBuildConfig
> Task :react-native-gesture-handler:generateDebugRFile
> Task :react-native-vector-icons:generateDebugRFile

> Task :react-native-community_checkbox:compileDebugJavaWithJavac
Note: /app/node_modules/@react-native-community/checkbox/android/src/main/java/com/reactnativecommunity/checkbox/ReactCheckBoxEvent.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

> Task :react-native-reanimated:generateDebugBuildConfig
> Task :react-native-reanimated:javaPreCompileDebug
> Task :react-native-reanimated:packageNdkLibs NO-SOURCE
> Task :react-native-community_checkbox:bundleLibCompileToJarDebug

> Task :react-native-reanimated:compileDebugJavaWithJavac
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

> Task :react-native-gesture-handler:javaPreCompileDebug
> Task :react-native-safe-area-context:generateDebugBuildConfig
> Task :react-native-reanimated:bundleLibCompileToJarDebug
> Task :app:processDebugResources

> Task :react-native-safe-area-context:compileDebugKotlin
'compileDebugJavaWithJavac' task (current target is 11) and 'compileDebugKotlin' task (current target is 1.8) jvm target compatibility should be set to the same Java version.

> Task :react-native-safe-area-context:javaPreCompileDebug
> Task :react-native-screens:generateDebugBuildConfig

> Task :react-native-gesture-handler:compileDebugKotlin
'compileDebugJavaWithJavac' task (current target is 11) and 'compileDebugKotlin' task (current target is 1.8) jvm target compatibility should be set to the same Java version.

> Task :react-native-vector-icons:generateDebugBuildConfig
> Task :react-native-screens:javaPreCompileDebug
> Task :react-native-vector-icons:javaPreCompileDebug

> Task :react-native-screens:compileDebugKotlin
'compileDebugJavaWithJavac' task (current target is 11) and 'compileDebugKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version.
Consider using JVM toolchain: https://kotl.in/gradle/jvm/toolchain


> Task :app:mergeDebugShaders

> Task :react-native-vector-icons:compileDebugJavaWithJavac
Note: /app/node_modules/react-native-vector-icons/android/src/oldarch/java/com/oblador/vectoricons/VectorIconsModule.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

> Task :react-native-vector-icons:bundleLibCompileToJarDebug
> Task :app:compileDebugShaders NO-SOURCE
> Task :app:copyReactNativeVectorIconFonts
> Task :app:generateDebugAssets
> Task :react-native-community_checkbox:mergeDebugShaders
> Task :react-native-community_checkbox:compileDebugShaders NO-SOURCE
> Task :react-native-community_checkbox:generateDebugAssets UP-TO-DATE
> Task :react-native-community_checkbox:packageDebugAssets
> Task :react-native-gesture-handler:mergeDebugShaders
> Task :react-native-gesture-handler:compileDebugShaders NO-SOURCE
> Task :react-native-gesture-handler:generateDebugAssets UP-TO-DATE
> Task :react-native-gesture-handler:packageDebugAssets
> Task :react-native-reanimated:mergeDebugShaders
> Task :react-native-reanimated:compileDebugShaders NO-SOURCE
> Task :react-native-reanimated:generateDebugAssets UP-TO-DATE
> Task :react-native-reanimated:packageDebugAssets
> Task :react-native-safe-area-context:mergeDebugShaders
> Task :react-native-safe-area-context:compileDebugShaders NO-SOURCE
> Task :react-native-safe-area-context:generateDebugAssets UP-TO-DATE
> Task :react-native-safe-area-context:packageDebugAssets
> Task :react-native-screens:mergeDebugShaders
> Task :react-native-screens:compileDebugShaders NO-SOURCE
> Task :react-native-screens:generateDebugAssets UP-TO-DATE
> Task :react-native-screens:packageDebugAssets
> Task :react-native-vector-icons:mergeDebugShaders
> Task :react-native-vector-icons:compileDebugShaders NO-SOURCE
> Task :react-native-vector-icons:generateDebugAssets UP-TO-DATE
> Task :react-native-vector-icons:packageDebugAssets
> Task :app:mergeDebugAssets
> Task :app:processDebugJavaRes NO-SOURCE
> Task :react-native-community_checkbox:processDebugJavaRes NO-SOURCE
> Task :react-native-community_checkbox:bundleLibResDebug NO-SOURCE
> Task :react-native-gesture-handler:processDebugJavaRes NO-SOURCE
> Task :react-native-reanimated:processDebugJavaRes NO-SOURCE
> Task :react-native-reanimated:bundleLibResDebug NO-SOURCE
> Task :react-native-safe-area-context:processDebugJavaRes NO-SOURCE
> Task :react-native-screens:processDebugJavaRes NO-SOURCE
> Task :react-native-vector-icons:processDebugJavaRes NO-SOURCE
> Task :react-native-vector-icons:bundleLibResDebug NO-SOURCE
> Task :app:compressDebugAssets
> Task :app:checkDebugDuplicateClasses
> Task :app:desugarDebugFileDependencies
> Task :app:mergeExtDexDebug

> Task :react-native-safe-area-context:compileDebugKotlin
w: /app/node_modules/react-native-safe-area-context/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaView.kt: (58, 23): 'getter for uiImplementation: UIImplementation!' is deprecated. Deprecated in Java

> Task :react-native-gesture-handler:compileDebugKotlin
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt: (770, 11): Name shadowed: size
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt: (9, 51): Unreachable code
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt: (10, 80): Unreachable code
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt: (80, 18): 'onChildStartedNativeGesture(MotionEvent!): Unit' is deprecated. Deprecated in Java
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt: (86, 42): Parameter 'disallowIntercept' is never used
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt: (118, 28): Parameter 'viewTag' is never used
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt: (7, 44): 'RCTEventEmitter' is deprecated. Deprecated in Java
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt: (14, 11): 'init(Int): Unit' is deprecated. Deprecated in Java
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt: (30, 42): 'RCTEventEmitter' is deprecated. Deprecated in Java
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt: (31, 21): 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java

> Task :react-native-gesture-handler:compileDebugJavaWithJavac
> Task :react-native-gesture-handler:bundleLibCompileToJarDebug
> Task :react-native-safe-area-context:compileDebugJavaWithJavac
> Task :react-native-safe-area-context:bundleLibCompileToJarDebug
> Task :react-native-gesture-handler:bundleLibResDebug
> Task :react-native-safe-area-context:bundleLibResDebug
> Task :react-native-community_checkbox:bundleLibRuntimeToJarDebug
> Task :react-native-gesture-handler:bundleLibRuntimeToJarDebug

> Task :react-native-screens:compileDebugKotlin
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/Screen.kt:87:22 'constructor GuardedRunnable(ReactContext!)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt:65:28 'setter for targetElevation: Float' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt:127:28 'setter for targetElevation: Float' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt:86:34 'getter for systemWindowInsetTop: Int' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt:229:37 'setColorFilter(Int, PorterDuff.Mode): Unit' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt:65:22 'constructor GuardedRunnable(ReactContext!)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt:110:22 'constructor GuardedRunnable(ReactContext!)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt:137:47 'replaceSystemWindowInsets(Int, Int, Int, Int): WindowInsetsCompat' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt:138:51 'getter for systemWindowInsetLeft: Int' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt:140:51 'getter for systemWindowInsetRight: Int' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt:141:51 'getter for systemWindowInsetBottom: Int' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt:100:22 Parameter 'view' is never used
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt:100:43 Parameter 'placeholder' is never used
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/SearchBarView.kt:147:43 Parameter 'flag' is never used
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt:5:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt:10:5 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt:17:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt:20:25 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt:7:42 Parameter 'width' is never used
w: file:///app/node_modules/react-native-screens/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt:7:54 Parameter 'height' is never used

> Task :react-native-safe-area-context:bundleLibRuntimeToJarDebug
> Task :react-native-vector-icons:bundleLibRuntimeToJarDebug
> Task :react-native-reanimated:bundleLibRuntimeToJarDebug
> Task :app:mergeDebugJniLibFolders
> Task :react-native-community_checkbox:mergeDebugJniLibFolders
> Task :react-native-community_checkbox:mergeDebugNativeLibs NO-SOURCE
> Task :react-native-community_checkbox:copyDebugJniLibsProjectOnly
> Task :react-native-gesture-handler:mergeDebugJniLibFolders
> Task :react-native-screens:compileDebugJavaWithJavac
> Task :react-native-screens:bundleLibResDebug
> Task :react-native-screens:bundleLibCompileToJarDebug
> Task :react-native-screens:bundleLibRuntimeToJarDebug
> Task :app:compileDebugJavaWithJavac
> Task :app:mergeLibDexDebug
> Task :app:dexBuilderDebug
> Task :react-native-gesture-handler:mergeDebugNativeLibs NO-SOURCE
> Task :react-native-gesture-handler:copyDebugJniLibsProjectOnly
> Task :app:mergeDebugJavaResource
> Task :app:mergeProjectDexDebug
> Task :react-native-reanimated:configureCMakeDebug[arm64-v8a]
> Task :react-native-reanimated:buildCMakeDebug[arm64-v8a]
> Task :react-native-reanimated:configureCMakeDebug[armeabi-v7a]
> Task :react-native-reanimated:buildCMakeDebug[armeabi-v7a]
> Task :react-native-reanimated:configureCMakeDebug[x86]
> Task :react-native-reanimated:buildCMakeDebug[x86]
> Task :react-native-reanimated:configureCMakeDebug[x86_64]
> Task :react-native-reanimated:buildCMakeDebug[x86_64]
> Task :react-native-reanimated:externalNativeBuildDebug
> Task :react-native-reanimated:mergeDebugJniLibFolders
> Task :react-native-safe-area-context:mergeDebugJniLibFolders
> Task :react-native-safe-area-context:mergeDebugNativeLibs NO-SOURCE
> Task :react-native-safe-area-context:copyDebugJniLibsProjectOnly
> Task :react-native-screens:mergeDebugJniLibFolders
> Task :react-native-screens:mergeDebugNativeLibs NO-SOURCE
> Task :react-native-screens:copyDebugJniLibsProjectOnly
> Task :react-native-vector-icons:mergeDebugJniLibFolders
> Task :react-native-vector-icons:mergeDebugNativeLibs NO-SOURCE
> Task :react-native-vector-icons:copyDebugJniLibsProjectOnly
> Task :app:validateSigningDebug
> Task :app:writeDebugAppMetadata
> Task :app:writeDebugSigningConfigVersions
> Task :react-native-community_checkbox:stripDebugDebugSymbols NO-SOURCE
> Task :react-native-community_checkbox:copyDebugJniLibsProjectAndLocalJars
> Task :react-native-reanimated:mergeDebugNativeLibs
> Task :react-native-community_checkbox:extractDebugAnnotations
> Task :react-native-community_checkbox:extractDeepLinksForAarDebug
> Task :react-native-community_checkbox:mergeDebugGeneratedProguardFiles
> Task :react-native-community_checkbox:mergeDebugConsumerProguardFiles
> Task :react-native-community_checkbox:prepareDebugArtProfile
> Task :react-native-community_checkbox:prepareLintJarForPublish
> Task :react-native-gesture-handler:stripDebugDebugSymbols NO-SOURCE
> Task :react-native-community_checkbox:mergeDebugJavaResource
> Task :react-native-gesture-handler:copyDebugJniLibsProjectAndLocalJars
> Task :react-native-community_checkbox:syncDebugLibJars
> Task :react-native-community_checkbox:bundleDebugAar
> Task :react-native-community_checkbox:assembleDebug
> Task :react-native-gesture-handler:extractDebugAnnotations
> Task :react-native-gesture-handler:extractDeepLinksForAarDebug
> Task :react-native-gesture-handler:mergeDebugGeneratedProguardFiles
> Task :react-native-gesture-handler:mergeDebugConsumerProguardFiles
> Task :react-native-gesture-handler:prepareDebugArtProfile
> Task :react-native-gesture-handler:prepareLintJarForPublish
> Task :react-native-gesture-handler:mergeDebugJavaResource
> Task :react-native-reanimated:copyDebugJniLibsProjectOnly
> Task :react-native-reanimated:extractDebugAnnotations
> Task :react-native-reanimated:stripDebugDebugSymbols
> Task :react-native-gesture-handler:syncDebugLibJars
> Task :react-native-gesture-handler:bundleDebugAar
> Task :react-native-gesture-handler:assembleDebug
> Task :react-native-reanimated:extractDeepLinksForAarDebug
> Task :react-native-reanimated:mergeDebugGeneratedProguardFiles
> Task :react-native-reanimated:mergeDebugConsumerProguardFiles
> Task :react-native-reanimated:generateJsonModelDebug
> Task :react-native-reanimated:prefabDebugConfigurePackage
> Task :react-native-reanimated:prefabDebugPackage
> Task :react-native-reanimated:prepareDebugArtProfile
> Task :react-native-reanimated:prepareLintJarForPublish
> Task :react-native-reanimated:mergeDebugJavaResource
> Task :react-native-safe-area-context:stripDebugDebugSymbols NO-SOURCE
> Task :react-native-reanimated:syncDebugLibJars
> Task :react-native-safe-area-context:copyDebugJniLibsProjectAndLocalJars
> Task :react-native-safe-area-context:extractDebugAnnotations
> Task :react-native-reanimated:copyDebugJniLibsProjectAndLocalJars
> Task :react-native-safe-area-context:extractDeepLinksForAarDebug
> Task :app:mergeDebugNativeLibs
> Task :react-native-reanimated:bundleDebugAar
> Task :react-native-reanimated:assembleDebug
> Task :react-native-safe-area-context:mergeDebugGeneratedProguardFiles
> Task :react-native-safe-area-context:mergeDebugConsumerProguardFiles
> Task :react-native-safe-area-context:prepareDebugArtProfile
> Task :react-native-screens:stripDebugDebugSymbols NO-SOURCE
> Task :react-native-screens:copyDebugJniLibsProjectAndLocalJars
> Task :react-native-safe-area-context:mergeDebugJavaResource
> Task :react-native-safe-area-context:prepareLintJarForPublish
> Task :react-native-screens:extractDebugAnnotations
> Task :react-native-safe-area-context:syncDebugLibJars
> Task :react-native-safe-area-context:bundleDebugAar
> Task :react-native-safe-area-context:assembleDebug
> Task :react-native-screens:extractDeepLinksForAarDebug
> Task :react-native-screens:mergeDebugGeneratedProguardFiles
> Task :react-native-screens:mergeDebugConsumerProguardFiles
> Task :react-native-screens:prepareDebugArtProfile
> Task :react-native-screens:prepareLintJarForPublish
> Task :react-native-vector-icons:stripDebugDebugSymbols NO-SOURCE
> Task :react-native-vector-icons:copyDebugJniLibsProjectAndLocalJars
> Task :react-native-screens:mergeDebugJavaResource
> Task :react-native-vector-icons:extractDebugAnnotations
> Task :react-native-screens:syncDebugLibJars
> Task :react-native-screens:bundleDebugAar
> Task :react-native-screens:assembleDebug
> Task :react-native-vector-icons:extractDeepLinksForAarDebug
> Task :react-native-vector-icons:mergeDebugGeneratedProguardFiles
> Task :react-native-vector-icons:mergeDebugConsumerProguardFiles
> Task :react-native-vector-icons:prepareDebugArtProfile
> Task :react-native-vector-icons:prepareLintJarForPublish
> Task :react-native-vector-icons:mergeDebugJavaResource
> Task :react-native-vector-icons:syncDebugLibJars
> Task :react-native-vector-icons:bundleDebugAar
> Task :react-native-vector-icons:assembleDebug
> Task :app:stripDebugDebugSymbols
> Task :app:packageDebug
> Task :app:createDebugApkListingFileRedirect
> Task :app:assembleDebug
w: Detected multiple Kotlin daemon sessions at build/kotlin/sessions

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.

See https://docs.gradle.org/8.0.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 5m 44s
221 actionable tasks: 216 executed, 5 up-to-date

> docker run --rm -v /home/ubuntu/storage/extracted/Sureshkumar041-iicab/iicab-c3398530d3984efd132546be941a0165a3ac6566:/source:ro -v /home/ubuntu/BachelorsThesis/scripts/RN/output/Sureshkumar041-iicab:/output -v /home/ubuntu/.npm:/root/.npm react-android:20-jdk17 bash -c 
                set -e

                cp -r /source/. /app &&                 cd /app && 
                # ---- install deps (yarn or npm) ----
                if [ -f yarn.lock ]; then
                    yarn install;
                else
                    npm install --ignore-scripts;
                fi && 
                # ---- stub missing parent package.json (monorepo metro configs) ----
                [ ! -f ../package.json ] && cp package.json ../package.json 2>/dev/null || true && 
                # ---- patch toReversed (Node <20 compat) ----
                find node_modules -name "loadConfig.js" -path "*/metro-config/*" -exec sed -i 's/\.toReversed()/.slice().reverse()/g' {} \; 2>/dev/null || true && 
                # ---- patch missing expo/AppEntry ----
                if grep -q '"main".*expo/AppEntry' package.json 2>/dev/null &&                    [ ! -f node_modules/expo/AppEntry.js ] && [ ! -f node_modules/expo/AppEntry.ts ]; then                     node -e "const fs=require('fs'); const p=JSON.parse(fs.readFileSync('package.json','utf8')); if(fs.existsSync('index.js')){p.main='index.js'; fs.writeFileSync('package.json',JSON.stringify(p,null,2));}" 2>/dev/null || true;                 fi && 
                # ---- patch broken metro config (ESM-only, null-returning, or monorepo-only) ----
                # NOTE: do NOT replace configs that merely use expo/metro-config — those carry
                # Expo-specific resolver paths (watchFolders, extraNodeModules) needed for
                # packages like @react-native-masked-view/masked-view to resolve.
                if grep -q 'react-native-monorepo-config' metro.config.js 2>/dev/null ||                    ! node -e "const c=require('./metro.config.js'); if(!c||typeof c!=='object') process.exit(1);" 2>/dev/null; then                     if [ -d node_modules/@react-native/metro-config ]; then                         printf 'const {getDefaultConfig, mergeConfig} = require("@react-native/metro-config");
module.exports = mergeConfig(getDefaultConfig(__dirname), {});
' > metro.config.js;                     else                         printf 'const {getDefaultConfig} = require("metro-config");
module.exports = getDefaultConfig(__dirname);
' > metro.config.js;                     fi;                 fi && 
                # ---- stub missing google-services.json (Firebase/Expo prebuild) ----
                if [ ! -f google-services.json ]; then                     python3 -c "import json; open('google-services.json','w').write(json.dumps({'project_info':{'project_number':'000000000000','project_id':'stub','storage_bucket':'stub.appspot.com'},'client':[{'client_info':{'mobilesdk_app_id':'1:000000000000:android:0000000000000000','android_client_info':{'package_name':'com.stub'}},'oauth_client':[],'api_key':[{'current_key':'stub'}],'services':{'appinvite_service':{'other_platform_oauth_client':[]}}}],'configuration_version':'1'}))" 2>/dev/null || true;                 fi && 
                # ---- detect expo ----
                if grep -q '"expo"' package.json && [ ! -d android ]; then
                    echo "Expo project detected";
                    CI=1 npx --yes expo prebuild --platform android
                fi && 
                # ---- fix expo/metro-config: serializer + Flow transformIgnorePatterns ----
                # Runs AFTER prebuild because prebuild generates metro.config.js for managed-workflow
                # projects — patching before prebuild would be overwritten by the generated file.
                # Fix 1: remove customSerializer that returns JS string instead of JSON
                #   ("var __BUND..." → "Serializer did not return expected format").
                # Fix 2: add transformIgnorePatterns so expo/src/Expo.ts goes through Babel
                #   (default pattern excludes all node_modules → raw Flow types → SyntaxError).
                if [ -f metro.config.js ] && [ -d node_modules/expo ] &&                    ( grep -q 'expo/metro-config\|@expo/metro-config' metro.config.js 2>/dev/null ||                      ! grep -q 'transformIgnorePatterns' metro.config.js 2>/dev/null ); then                     cp metro.config.js metro.config.orig.js &&                     printf 'const c=require("./metro.config.orig.js");const r=Object.assign({},c);if(r.serializer){r.serializer=Object.assign({},r.serializer);delete r.serializer.customSerializer;}r.transformer=Object.assign({},r.transformer||{});if(!r.transformer.transformIgnorePatterns){r.transformer.transformIgnorePatterns=["node_modules/(?!(react-native|@react-native|expo|@expo|@unimodules|react-clone-referenced-element|@react-navigation|native-base)/)"];}module.exports=r;\n' > metro.config.js;                 fi && 
                # ---- stub missing metro watchFolders paths ----
                mkdir -p /src 2>/dev/null || true && 
                # ---- fix babel configs that use react-native-builder-bob ----
                # builder-bob is a library-dev tool; its getConfig() throws "Couldn't determine the source
                # directory" when built outside the library's own workspace. Replace with a standard preset.
                if grep -ql 'react-native-builder-bob' babel.config.js babel.config.json .babelrc .babelrc.js 2>/dev/null; then                     if [ -d node_modules/babel-preset-expo ]; then                         printf 'module.exports=function(api){api.cache(true);return{presets:["babel-preset-expo"]};};
' > babel.config.js;                     elif [ -d node_modules/@react-native/babel-preset ]; then                         printf 'module.exports={presets:["module:@react-native/babel-preset"]};' > babel.config.js;                     else                         printf 'module.exports={presets:["module:metro-react-native-babel-preset"]};' > babel.config.js;                     fi;                 fi && 
                # ---- ensure TypeScript babel support (fixes 'interface' SyntaxError in metro bundling) ----
                if [ -d node_modules/babel-preset-expo ]; then                     grep -ql "expo\|typescript" babel.config.js .babelrc .babelrc.js babel.config.json 2>/dev/null ||                     printf 'module.exports=function(api){api.cache(true);return{presets:["babel-preset-expo"]};};
' > babel.config.js;                 fi && 
                # ---- stub missing-asset-registry-path (Metro virtual module not resolved in release) ----
                # Metro normally aliases this to @react-native/assets-registry/registry at bundle time.
                # When that alias is missing, any PNG asset in node_modules triggers "Unable to resolve module".
                if [ ! -d node_modules/missing-asset-registry-path ]; then                     mkdir -p node_modules/missing-asset-registry-path &&                     if [ -f node_modules/@react-native/assets-registry/registry.js ]; then                         printf 'module.exports=require("@react-native/assets-registry/registry");' > node_modules/missing-asset-registry-path/index.js;                     else                         printf 'module.exports={registerAsset:function(){return 0;},getAssetByID:function(){return null;}};' > node_modules/missing-asset-registry-path/index.js;                     fi;                 fi && 
                # ---- stub @react-native-masked-view/masked-view if missing ----
                # Required by @react-navigation/elements but often not installed as a direct dependency.
                if [ ! -d node_modules/@react-native-masked-view/masked-view ]; then                     mkdir -p node_modules/@react-native-masked-view/masked-view &&                     printf '{"name":"@react-native-masked-view/masked-view","version":"0.1.11","main":"index.js"}' > node_modules/@react-native-masked-view/masked-view/package.json &&                     printf 'const React=require("react");const {View}=require("react-native");function MaskedView(p){return React.createElement(View,p.style?{style:p.style}:{},p.children);}module.exports=MaskedView;module.exports.default=MaskedView;' > node_modules/@react-native-masked-view/masked-view/index.js;                 fi && 
                export PATH="/app/node_modules/.bin:$PATH" &&                 cd android && 
                chmod +x gradlew && 
                # ---- inject fallback repositories via Gradle init script ----
                mkdir -p $GRADLE_USER_HOME/init.d &&                 echo 'gradle.beforeProject {project ->' > $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  project.buildscript.repositories {' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://maven.google.com"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://repo1.maven.org/maven2"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://plugins.gradle.org/m2/"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://jitpack.io"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  }' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  project.repositories {' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://maven.google.com"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://repo1.maven.org/maven2"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://plugins.gradle.org/m2/"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://jitpack.io"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  }' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '}' >> $GRADLE_USER_HOME/init.d/repos.gradle && 
                # ---- patch settings.gradle to use local react-native CLI (avoids npx failures) ----
                sed -i 's/autolinkLibrariesWithCommand()/autolinkLibrariesWithCommand("node node_modules\/.bin\/react-native config")/' settings.gradle 2>/dev/null || true && 
                # ---- disable Sentry source map upload (no credentials in CI) ----
                export SENTRY_DISABLE_AUTO_UPLOAD=true &&                 echo "sentryUploadEnabled=false" >> gradle.properties 2>/dev/null || true && 
                # ---- enable ABI splits ----
                if grep -q 'splits' app/build.gradle 2>/dev/null; then                     sed -i 's/enable false/enable true/' app/build.gradle || true;                 else                     sed -i '/^android[[:space:]]*{/a\    splits {\n        abi {\n            reset()\n            enable true\n            universalApk false\n            include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"\n        }\n    }' app/build.gradle || true;                 fi && 
                # ---- enable R8 ----
                sed -i 's/enableProguardInReleaseBuilds = false/enableProguardInReleaseBuilds = true/' app/build.gradle || true && 
                # ---- sign release with debug key ----
                sed -i '/buildTypes/,/}/s/release {/release {
            signingConfig signingConfigs.debug/' app/build.gradle || true && 
                # ---- pre-resolve AAR transforms so CMake finds prefab paths ----
                ./gradlew :app:dependencies --configuration releaseCompileClasspath --no-daemon > /dev/null 2>&1 || true && 
                # ---- build release apk ----
                ./gradlew assembleRelease --no-daemon || exit 1 &&                     
                APK_PATH="app/build/outputs/apk/release"

                if ! ls $APK_PATH/*.apk 1> /dev/null 2>&1; then
                    echo "ERROR: APK not generated"
                    exit 1
                fi

                # ---- copy output ----
                cp app/build/outputs/apk/release/*.apk /output/r8/

                # ---- copy TPL metadata ----
                [ -f ../package.json ] && cp ../package.json /output/r8/ || true
                [ -f ../package-lock.json ] && cp ../package-lock.json /output/r8/ || true
                [ -f ../yarn.lock ] && cp ../yarn.lock /output/r8/ || true
                [ -f ../pnpm-lock.yaml ] && cp ../pnpm-lock.yaml /output/r8/ || true
                [ -f app/build.gradle ] && cp app/build.gradle /output/r8/android-build.gradle || true
                [ -f build.gradle ] && cp build.gradle /output/r8/root-build.gradle || true
                [ -f build.gradle.kts ] && cp build.gradle.kts /output/r8/root-build.gradle.kts || true
                [ -f settings.gradle ] && cp settings.gradle /output/r8/ || true
                [ -f settings.gradle.kts ] && cp settings.gradle.kts /output/r8/ || true
                [ -f gradle/libs.versions.toml ] && cp gradle/libs.versions.toml /output/r8/ || true
                find . -name "*.gradle" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true
                find . -name "*.gradle.kts" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true
                mkdir -p /output/r8/libs
                find . -name "*.jar" -not -name "gradle-wrapper.jar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true
                find . -name "*.aar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true
                find . -name "*.so" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true
                    
npm warn deprecated @babel/plugin-proposal-optional-catch-binding@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.
npm warn deprecated @babel/plugin-proposal-numeric-separator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.
npm warn deprecated @babel/plugin-proposal-nullish-coalescing-operator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.
npm warn deprecated @babel/plugin-proposal-class-properties@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
npm warn deprecated @babel/plugin-proposal-optional-chaining@7.21.0: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.
npm warn deprecated @babel/plugin-proposal-async-generator-functions@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.
npm warn deprecated @babel/plugin-proposal-object-rest-spread@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.
npm warn deprecated uglify-es@3.3.9: support for ECMAScript is superseded by `uglify-js` as of v3.13.0

added 1166 packages, and audited 1167 packages in 16s

140 packages are looking for funding
  run `npm fund` for details

43 vulnerabilities (5 low, 12 moderate, 24 high, 2 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.
sed: -e expression #1, char 37: unterminated `s' command
To honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/8.0.1/userguide/gradle_daemon.html#sec:disabling_the_daemon.
Daemon will be stopped at the end of the build 
> Task :gradle-plugin:compileKotlin UP-TO-DATE
> Task :gradle-plugin:compileJava NO-SOURCE
> Task :gradle-plugin:pluginDescriptors UP-TO-DATE
> Task :gradle-plugin:processResources UP-TO-DATE
> Task :gradle-plugin:classes UP-TO-DATE
> Task :gradle-plugin:jar UP-TO-DATE
> Task :gradle-plugin:inspectClassesForKotlinIC UP-TO-DATE

FAILURE: Build failed with an exception.

* Where:
Build file '/app/android/app/build.gradle' line: 1

* What went wrong:
A problem occurred evaluating project ':app'.
> Failed to apply plugin 'com.android.internal.application'.
   > Cannot parse project property android.disableAutomaticComponentCreation='truesentryUploadEnabled=false' of type 'class java.lang.String' as boolean. Expected 'true' or 'false'.

* Try:
> Run with --stacktrace option to get the stack trace.
5 actionable tasks: 5 up-to-date
> 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

BUILD FAILED in 18s

> echo Build failed with Node 20 and jdk version 17 with the following error: Command '['docker', 'run', '--rm', '-v', '/home/ubuntu/storage/extracted/Sureshkumar041-iicab/iicab-c3398530d3984efd132546be941a0165a3ac6566:/source:ro', '-v', '/home/ubuntu/BachelorsThesis/scripts/RN/output/Sureshkumar041-iicab:/output', '-v', '/home/ubuntu/.npm:/root/.npm', 'react-android:20-jdk17', 'bash', '-c', '\n                set -e\n\n                cp -r /source/. /app &&                 cd /app && \n                # ---- install deps (yarn or npm) ----\n                if [ -f yarn.lock ]; then\n                    yarn install;\n                else\n                    npm install --ignore-scripts;\n                fi && \n                # ---- stub missing parent package.json (monorepo metro configs) ----\n                [ ! -f ../package.json ] && cp package.json ../package.json 2>/dev/null || true && \n                # ---- patch toReversed (Node <20 compat) ----\n                find node_modules -name "loadConfig.js" -path "*/metro-config/*" -exec sed -i \'s/\\.toReversed()/.slice().reverse()/g\' {} \\; 2>/dev/null || true && \n                # ---- patch missing expo/AppEntry ----\n                if grep -q \'"main".*expo/AppEntry\' package.json 2>/dev/null &&                    [ ! -f node_modules/expo/AppEntry.js ] && [ ! -f node_modules/expo/AppEntry.ts ]; then                     node -e "const fs=require(\'fs\'); const p=JSON.parse(fs.readFileSync(\'package.json\',\'utf8\')); if(fs.existsSync(\'index.js\')){p.main=\'index.js\'; fs.writeFileSync(\'package.json\',JSON.stringify(p,null,2));}" 2>/dev/null || true;                 fi && \n                # ---- patch broken metro config (ESM-only, null-returning, or monorepo-only) ----\n                # NOTE: do NOT replace configs that merely use expo/metro-config — those carry\n                # Expo-specific resolver paths (watchFolders, extraNodeModules) needed for\n                # packages like @react-native-masked-view/masked-view to resolve.\n                if grep -q \'react-native-monorepo-config\' metro.config.js 2>/dev/null ||                    ! node -e "const c=require(\'./metro.config.js\'); if(!c||typeof c!==\'object\') process.exit(1);" 2>/dev/null; then                     if [ -d node_modules/@react-native/metro-config ]; then                         printf \'const {getDefaultConfig, mergeConfig} = require("@react-native/metro-config");\nmodule.exports = mergeConfig(getDefaultConfig(__dirname), {});\n\' > metro.config.js;                     else                         printf \'const {getDefaultConfig} = require("metro-config");\nmodule.exports = getDefaultConfig(__dirname);\n\' > metro.config.js;                     fi;                 fi && \n                # ---- stub missing google-services.json (Firebase/Expo prebuild) ----\n                if [ ! -f google-services.json ]; then                     python3 -c "import json; open(\'google-services.json\',\'w\').write(json.dumps({\'project_info\':{\'project_number\':\'000000000000\',\'project_id\':\'stub\',\'storage_bucket\':\'stub.appspot.com\'},\'client\':[{\'client_info\':{\'mobilesdk_app_id\':\'1:000000000000:android:0000000000000000\',\'android_client_info\':{\'package_name\':\'com.stub\'}},\'oauth_client\':[],\'api_key\':[{\'current_key\':\'stub\'}],\'services\':{\'appinvite_service\':{\'other_platform_oauth_client\':[]}}}],\'configuration_version\':\'1\'}))" 2>/dev/null || true;                 fi && \n                # ---- detect expo ----\n                if grep -q \'"expo"\' package.json && [ ! -d android ]; then\n                    echo "Expo project detected";\n                    CI=1 npx --yes expo prebuild --platform android\n                fi && \n                # ---- fix expo/metro-config: serializer + Flow transformIgnorePatterns ----\n                # Runs AFTER prebuild because prebuild generates metro.config.js for managed-workflow\n                # projects — patching before prebuild would be overwritten by the generated file.\n                # Fix 1: remove customSerializer that returns JS string instead of JSON\n                #   ("var __BUND..." → "Serializer did not return expected format").\n                # Fix 2: add transformIgnorePatterns so expo/src/Expo.ts goes through Babel\n                #   (default pattern excludes all node_modules → raw Flow types → SyntaxError).\n                if [ -f metro.config.js ] && [ -d node_modules/expo ] &&                    ( grep -q \'expo/metro-config\\|@expo/metro-config\' metro.config.js 2>/dev/null ||                      ! grep -q \'transformIgnorePatterns\' metro.config.js 2>/dev/null ); then                     cp metro.config.js metro.config.orig.js &&                     printf \'const c=require("./metro.config.orig.js");const r=Object.assign({},c);if(r.serializer){r.serializer=Object.assign({},r.serializer);delete r.serializer.customSerializer;}r.transformer=Object.assign({},r.transformer||{});if(!r.transformer.transformIgnorePatterns){r.transformer.transformIgnorePatterns=["node_modules/(?!(react-native|@react-native|expo|@expo|@unimodules|react-clone-referenced-element|@react-navigation|native-base)/)"];}module.exports=r;\\n\' > metro.config.js;                 fi && \n                # ---- stub missing metro watchFolders paths ----\n                mkdir -p /src 2>/dev/null || true && \n                # ---- fix babel configs that use react-native-builder-bob ----\n                # builder-bob is a library-dev tool; its getConfig() throws "Couldn\'t determine the source\n                # directory" when built outside the library\'s own workspace. Replace with a standard preset.\n                if grep -ql \'react-native-builder-bob\' babel.config.js babel.config.json .babelrc .babelrc.js 2>/dev/null; then                     if [ -d node_modules/babel-preset-expo ]; then                         printf \'module.exports=function(api){api.cache(true);return{presets:["babel-preset-expo"]};};\n\' > babel.config.js;                     elif [ -d node_modules/@react-native/babel-preset ]; then                         printf \'module.exports={presets:["module:@react-native/babel-preset"]};\' > babel.config.js;                     else                         printf \'module.exports={presets:["module:metro-react-native-babel-preset"]};\' > babel.config.js;                     fi;                 fi && \n                # ---- ensure TypeScript babel support (fixes \'interface\' SyntaxError in metro bundling) ----\n                if [ -d node_modules/babel-preset-expo ]; then                     grep -ql "expo\\|typescript" babel.config.js .babelrc .babelrc.js babel.config.json 2>/dev/null ||                     printf \'module.exports=function(api){api.cache(true);return{presets:["babel-preset-expo"]};};\n\' > babel.config.js;                 fi && \n                # ---- stub missing-asset-registry-path (Metro virtual module not resolved in release) ----\n                # Metro normally aliases this to @react-native/assets-registry/registry at bundle time.\n                # When that alias is missing, any PNG asset in node_modules triggers "Unable to resolve module".\n                if [ ! -d node_modules/missing-asset-registry-path ]; then                     mkdir -p node_modules/missing-asset-registry-path &&                     if [ -f node_modules/@react-native/assets-registry/registry.js ]; then                         printf \'module.exports=require("@react-native/assets-registry/registry");\' > node_modules/missing-asset-registry-path/index.js;                     else                         printf \'module.exports={registerAsset:function(){return 0;},getAssetByID:function(){return null;}};\' > node_modules/missing-asset-registry-path/index.js;                     fi;                 fi && \n                # ---- stub @react-native-masked-view/masked-view if missing ----\n                # Required by @react-navigation/elements but often not installed as a direct dependency.\n                if [ ! -d node_modules/@react-native-masked-view/masked-view ]; then                     mkdir -p node_modules/@react-native-masked-view/masked-view &&                     printf \'{"name":"@react-native-masked-view/masked-view","version":"0.1.11","main":"index.js"}\' > node_modules/@react-native-masked-view/masked-view/package.json &&                     printf \'const React=require("react");const {View}=require("react-native");function MaskedView(p){return React.createElement(View,p.style?{style:p.style}:{},p.children);}module.exports=MaskedView;module.exports.default=MaskedView;\' > node_modules/@react-native-masked-view/masked-view/index.js;                 fi && \n                export PATH="/app/node_modules/.bin:$PATH" &&                 cd android && \n                chmod +x gradlew && \n                # ---- inject fallback repositories via Gradle init script ----\n                mkdir -p $GRADLE_USER_HOME/init.d &&                 echo \'gradle.beforeProject {project ->\' > $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  project.buildscript.repositories {\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://maven.google.com"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://repo1.maven.org/maven2"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://plugins.gradle.org/m2/"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://jitpack.io"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  }\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  project.repositories {\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://maven.google.com"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://repo1.maven.org/maven2"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://plugins.gradle.org/m2/"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://jitpack.io"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  }\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'}\' >> $GRADLE_USER_HOME/init.d/repos.gradle && \n                # ---- patch settings.gradle to use local react-native CLI (avoids npx failures) ----\n                sed -i \'s/autolinkLibrariesWithCommand()/autolinkLibrariesWithCommand("node node_modules\\/.bin\\/react-native config")/\' settings.gradle 2>/dev/null || true && \n                # ---- disable Sentry source map upload (no credentials in CI) ----\n                export SENTRY_DISABLE_AUTO_UPLOAD=true &&                 echo "sentryUploadEnabled=false" >> gradle.properties 2>/dev/null || true && \n                # ---- enable ABI splits ----\n                if grep -q \'splits\' app/build.gradle 2>/dev/null; then                     sed -i \'s/enable false/enable true/\' app/build.gradle || true;                 else                     sed -i \'/^android[[:space:]]*{/a\\    splits {\\n        abi {\\n            reset()\\n            enable true\\n            universalApk false\\n            include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"\\n        }\\n    }\' app/build.gradle || true;                 fi && \n                # ---- enable R8 ----\n                sed -i \'s/enableProguardInReleaseBuilds = false/enableProguardInReleaseBuilds = true/\' app/build.gradle || true && \n                # ---- sign release with debug key ----\n                sed -i \'/buildTypes/,/}/s/release {/release {\n            signingConfig signingConfigs.debug/\' app/build.gradle || true && \n                # ---- pre-resolve AAR transforms so CMake finds prefab paths ----\n                ./gradlew :app:dependencies --configuration releaseCompileClasspath --no-daemon > /dev/null 2>&1 || true && \n                # ---- build release apk ----\n                ./gradlew assembleRelease --no-daemon || exit 1 &&                     \n                APK_PATH="app/build/outputs/apk/release"\n\n                if ! ls $APK_PATH/*.apk 1> /dev/null 2>&1; then\n                    echo "ERROR: APK not generated"\n                    exit 1\n                fi\n\n                # ---- copy output ----\n                cp app/build/outputs/apk/release/*.apk /output/r8/\n\n                # ---- copy TPL metadata ----\n                [ -f ../package.json ] && cp ../package.json /output/r8/ || true\n                [ -f ../package-lock.json ] && cp ../package-lock.json /output/r8/ || true\n                [ -f ../yarn.lock ] && cp ../yarn.lock /output/r8/ || true\n                [ -f ../pnpm-lock.yaml ] && cp ../pnpm-lock.yaml /output/r8/ || true\n                [ -f app/build.gradle ] && cp app/build.gradle /output/r8/android-build.gradle || true\n                [ -f build.gradle ] && cp build.gradle /output/r8/root-build.gradle || true\n                [ -f build.gradle.kts ] && cp build.gradle.kts /output/r8/root-build.gradle.kts || true\n                [ -f settings.gradle ] && cp settings.gradle /output/r8/ || true\n                [ -f settings.gradle.kts ] && cp settings.gradle.kts /output/r8/ || true\n                [ -f gradle/libs.versions.toml ] && cp gradle/libs.versions.toml /output/r8/ || true\n                find . -name "*.gradle" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true\n                find . -name "*.gradle.kts" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true\n                mkdir -p /output/r8/libs\n                find . -name "*.jar" -not -name "gradle-wrapper.jar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n                find . -name "*.aar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n                find . -name "*.so" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n                    ']' returned non-zero exit status 1.
Build failed with Node 20 and jdk version 17 with the following error: Command '['docker', 'run', '--rm', '-v', '/home/ubuntu/storage/extracted/Sureshkumar041-iicab/iicab-c3398530d3984efd132546be941a0165a3ac6566:/source:ro', '-v', '/home/ubuntu/BachelorsThesis/scripts/RN/output/Sureshkumar041-iicab:/output', '-v', '/home/ubuntu/.npm:/root/.npm', 'react-android:20-jdk17', 'bash', '-c', '\n                set -e\n\n                cp -r /source/. /app &&                 cd /app && \n                # ---- install deps (yarn or npm) ----\n                if [ -f yarn.lock ]; then\n                    yarn install;\n                else\n                    npm install --ignore-scripts;\n                fi && \n                # ---- stub missing parent package.json (monorepo metro configs) ----\n                [ ! -f ../package.json ] && cp package.json ../package.json 2>/dev/null || true && \n                # ---- patch toReversed (Node <20 compat) ----\n                find node_modules -name "loadConfig.js" -path "*/metro-config/*" -exec sed -i \'s/\\.toReversed()/.slice().reverse()/g\' {} \\; 2>/dev/null || true && \n                # ---- patch missing expo/AppEntry ----\n                if grep -q \'"main".*expo/AppEntry\' package.json 2>/dev/null &&                    [ ! -f node_modules/expo/AppEntry.js ] && [ ! -f node_modules/expo/AppEntry.ts ]; then                     node -e "const fs=require(\'fs\'); const p=JSON.parse(fs.readFileSync(\'package.json\',\'utf8\')); if(fs.existsSync(\'index.js\')){p.main=\'index.js\'; fs.writeFileSync(\'package.json\',JSON.stringify(p,null,2));}" 2>/dev/null || true;                 fi && \n                # ---- patch broken metro config (ESM-only, null-returning, or monorepo-only) ----\n                # NOTE: do NOT replace configs that merely use expo/metro-config — those carry\n                # Expo-specific resolver paths (watchFolders, extraNodeModules) needed for\n                # packages like @react-native-masked-view/masked-view to resolve.\n                if grep -q \'react-native-monorepo-config\' metro.config.js 2>/dev/null ||                    ! node -e "const c=require(\'./metro.config.js\'); if(!c||typeof c!==\'object\') process.exit(1);" 2>/dev/null; then                     if [ -d node_modules/@react-native/metro-config ]; then                         printf \'const {getDefaultConfig, mergeConfig} = require("@react-native/metro-config");\nmodule.exports = mergeConfig(getDefaultConfig(__dirname), {});\n\' > metro.config.js;                     else                         printf \'const {getDefaultConfig} = require("metro-config");\nmodule.exports = getDefaultConfig(__dirname);\n\' > metro.config.js;                     fi;                 fi && \n                # ---- stub missing google-services.json (Firebase/Expo prebuild) ----\n                if [ ! -f google-services.json ]; then                     python3 -c "import json; open(\'google-services.json\',\'w\').write(json.dumps({\'project_info\':{\'project_number\':\'000000000000\',\'project_id\':\'stub\',\'storage_bucket\':\'stub.appspot.com\'},\'client\':[{\'client_info\':{\'mobilesdk_app_id\':\'1:000000000000:android:0000000000000000\',\'android_client_info\':{\'package_name\':\'com.stub\'}},\'oauth_client\':[],\'api_key\':[{\'current_key\':\'stub\'}],\'services\':{\'appinvite_service\':{\'other_platform_oauth_client\':[]}}}],\'configuration_version\':\'1\'}))" 2>/dev/null || true;                 fi && \n                # ---- detect expo ----\n                if grep -q \'"expo"\' package.json && [ ! -d android ]; then\n                    echo "Expo project detected";\n                    CI=1 npx --yes expo prebuild --platform android\n                fi && \n                # ---- fix expo/metro-config: serializer + Flow transformIgnorePatterns ----\n                # Runs AFTER prebuild because prebuild generates metro.config.js for managed-workflow\n                # projects — patching before prebuild would be overwritten by the generated file.\n                # Fix 1: remove customSerializer that returns JS string instead of JSON\n                #   ("var __BUND..." → "Serializer did not return expected format").\n                # Fix 2: add transformIgnorePatterns so expo/src/Expo.ts goes through Babel\n                #   (default pattern excludes all node_modules → raw Flow types → SyntaxError).\n                if [ -f metro.config.js ] && [ -d node_modules/expo ] &&                    ( grep -q \'expo/metro-config\\|@expo/metro-config\' metro.config.js 2>/dev/null ||                      ! grep -q \'transformIgnorePatterns\' metro.config.js 2>/dev/null ); then                     cp metro.config.js metro.config.orig.js &&                     printf \'const c=require("./metro.config.orig.js");const r=Object.assign({},c);if(r.serializer){r.serializer=Object.assign({},r.serializer);delete r.serializer.customSerializer;}r.transformer=Object.assign({},r.transformer||{});if(!r.transformer.transformIgnorePatterns){r.transformer.transformIgnorePatterns=["node_modules/(?!(react-native|@react-native|expo|@expo|@unimodules|react-clone-referenced-element|@react-navigation|native-base)/)"];}module.exports=r;\\n\' > metro.config.js;                 fi && \n                # ---- stub missing metro watchFolders paths ----\n                mkdir -p /src 2>/dev/null || true && \n                # ---- fix babel configs that use react-native-builder-bob ----\n                # builder-bob is a library-dev tool; its getConfig() throws "Couldn\'t determine the source\n                # directory" when built outside the library\'s own workspace. Replace with a standard preset.\n                if grep -ql \'react-native-builder-bob\' babel.config.js babel.config.json .babelrc .babelrc.js 2>/dev/null; then                     if [ -d node_modules/babel-preset-expo ]; then                         printf \'module.exports=function(api){api.cache(true);return{presets:["babel-preset-expo"]};};\n\' > babel.config.js;                     elif [ -d node_modules/@react-native/babel-preset ]; then                         printf \'module.exports={presets:["module:@react-native/babel-preset"]};\' > babel.config.js;                     else                         printf \'module.exports={presets:["module:metro-react-native-babel-preset"]};\' > babel.config.js;                     fi;                 fi && \n                # ---- ensure TypeScript babel support (fixes \'interface\' SyntaxError in metro bundling) ----\n                if [ -d node_modules/babel-preset-expo ]; then                     grep -ql "expo\\|typescript" babel.config.js .babelrc .babelrc.js babel.config.json 2>/dev/null ||                     printf \'module.exports=function(api){api.cache(true);return{presets:["babel-preset-expo"]};};\n\' > babel.config.js;                 fi && \n                # ---- stub missing-asset-registry-path (Metro virtual module not resolved in release) ----\n                # Metro normally aliases this to @react-native/assets-registry/registry at bundle time.\n                # When that alias is missing, any PNG asset in node_modules triggers "Unable to resolve module".\n                if [ ! -d node_modules/missing-asset-registry-path ]; then                     mkdir -p node_modules/missing-asset-registry-path &&                     if [ -f node_modules/@react-native/assets-registry/registry.js ]; then                         printf \'module.exports=require("@react-native/assets-registry/registry");\' > node_modules/missing-asset-registry-path/index.js;                     else                         printf \'module.exports={registerAsset:function(){return 0;},getAssetByID:function(){return null;}};\' > node_modules/missing-asset-registry-path/index.js;                     fi;                 fi && \n                # ---- stub @react-native-masked-view/masked-view if missing ----\n                # Required by @react-navigation/elements but often not installed as a direct dependency.\n                if [ ! -d node_modules/@react-native-masked-view/masked-view ]; then                     mkdir -p node_modules/@react-native-masked-view/masked-view &&                     printf \'{"name":"@react-native-masked-view/masked-view","version":"0.1.11","main":"index.js"}\' > node_modules/@react-native-masked-view/masked-view/package.json &&                     printf \'const React=require("react");const {View}=require("react-native");function MaskedView(p){return React.createElement(View,p.style?{style:p.style}:{},p.children);}module.exports=MaskedView;module.exports.default=MaskedView;\' > node_modules/@react-native-masked-view/masked-view/index.js;                 fi && \n                export PATH="/app/node_modules/.bin:$PATH" &&                 cd android && \n                chmod +x gradlew && \n                # ---- inject fallback repositories via Gradle init script ----\n                mkdir -p $GRADLE_USER_HOME/init.d &&                 echo \'gradle.beforeProject {project ->\' > $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  project.buildscript.repositories {\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://maven.google.com"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://repo1.maven.org/maven2"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://plugins.gradle.org/m2/"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://jitpack.io"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  }\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  project.repositories {\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://maven.google.com"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://repo1.maven.org/maven2"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://plugins.gradle.org/m2/"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://jitpack.io"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  }\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'}\' >> $GRADLE_USER_HOME/init.d/repos.gradle && \n                # ---- patch settings.gradle to use local react-native CLI (avoids npx failures) ----\n                sed -i \'s/autolinkLibrariesWithCommand()/autolinkLibrariesWithCommand("node node_modules\\/.bin\\/react-native config")/\' settings.gradle 2>/dev/null || true && \n                # ---- disable Sentry source map upload (no credentials in CI) ----\n                export SENTRY_DISABLE_AUTO_UPLOAD=true &&                 echo "sentryUploadEnabled=false" >> gradle.properties 2>/dev/null || true && \n                # ---- enable ABI splits ----\n                if grep -q \'splits\' app/build.gradle 2>/dev/null; then                     sed -i \'s/enable false/enable true/\' app/build.gradle || true;                 else                     sed -i \'/^android[[:space:]]*{/a\\    splits {\\n        abi {\\n            reset()\\n            enable true\\n            universalApk false\\n            include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"\\n        }\\n    }\' app/build.gradle || true;                 fi && \n                # ---- enable R8 ----\n                sed -i \'s/enableProguardInReleaseBuilds = false/enableProguardInReleaseBuilds = true/\' app/build.gradle || true && \n                # ---- sign release with debug key ----\n                sed -i \'/buildTypes/,/}/s/release {/release {\n            signingConfig signingConfigs.debug/\' app/build.gradle || true && \n                # ---- pre-resolve AAR transforms so CMake finds prefab paths ----\n                ./gradlew :app:dependencies --configuration releaseCompileClasspath --no-daemon > /dev/null 2>&1 || true && \n                # ---- build release apk ----\n                ./gradlew assembleRelease --no-daemon || exit 1 &&                     \n                APK_PATH="app/build/outputs/apk/release"\n\n                if ! ls $APK_PATH/*.apk 1> /dev/null 2>&1; then\n                    echo "ERROR: APK not generated"\n                    exit 1\n                fi\n\n                # ---- copy output ----\n                cp app/build/outputs/apk/release/*.apk /output/r8/\n\n                # ---- copy TPL metadata ----\n                [ -f ../package.json ] && cp ../package.json /output/r8/ || true\n                [ -f ../package-lock.json ] && cp ../package-lock.json /output/r8/ || true\n                [ -f ../yarn.lock ] && cp ../yarn.lock /output/r8/ || true\n                [ -f ../pnpm-lock.yaml ] && cp ../pnpm-lock.yaml /output/r8/ || true\n                [ -f app/build.gradle ] && cp app/build.gradle /output/r8/android-build.gradle || true\n                [ -f build.gradle ] && cp build.gradle /output/r8/root-build.gradle || true\n                [ -f build.gradle.kts ] && cp build.gradle.kts /output/r8/root-build.gradle.kts || true\n                [ -f settings.gradle ] && cp settings.gradle /output/r8/ || true\n                [ -f settings.gradle.kts ] && cp settings.gradle.kts /output/r8/ || true\n                [ -f gradle/libs.versions.toml ] && cp gradle/libs.versions.toml /output/r8/ || true\n                find . -name "*.gradle" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true\n                find . -name "*.gradle.kts" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true\n                mkdir -p /output/r8/libs\n                find . -name "*.jar" -not -name "gradle-wrapper.jar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n                find . -name "*.aar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n                find . -name "*.so" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n                    ']' returned non-zero exit status 1.

> echo Attempting build for Sureshkumar041-iicab with Node 22 and jdk 17
Attempting build for Sureshkumar041-iicab with Node 22 and jdk 17

> docker run --rm -v /home/ubuntu/storage/extracted/Sureshkumar041-iicab/iicab-c3398530d3984efd132546be941a0165a3ac6566:/source:ro -v /home/ubuntu/BachelorsThesis/scripts/RN/output/Sureshkumar041-iicab:/output -v /home/ubuntu/.npm:/root/.npm react-android:22-jdk17 bash -c 
                set -e

                cp -r /source/. /app &&                 cd /app && 
                # ---- install deps (yarn or npm) ----
                if [ -f yarn.lock ]; then
                    yarn install;
                else
                    npm install --ignore-scripts;
                fi && 
                # ---- stub missing google-services.json (Firebase/Expo prebuild) ----
                if [ ! -f google-services.json ]; then                     python3 -c "import json; open('google-services.json','w').write(json.dumps({'project_info':{'project_number':'000000000000','project_id':'stub','storage_bucket':'stub.appspot.com'},'client':[{'client_info':{'mobilesdk_app_id':'1:000000000000:android:0000000000000000','android_client_info':{'package_name':'com.stub'}},'oauth_client':[],'api_key':[{'current_key':'stub'}],'services':{'appinvite_service':{'other_platform_oauth_client':[]}}}],'configuration_version':'1'}))" 2>/dev/null || true;                 fi && 
                # ---- detect expo ----
                if grep -q '"expo"' package.json && [ ! -d android ]; then
                    echo "Expo project detected";
                    CI=1 npx --yes expo prebuild --platform android
                fi && 
                export PATH="/app/node_modules/.bin:$PATH" &&                 cd android && 
                chmod +x gradlew && 
                # ---- inject fallback repositories via Gradle init script ----
                mkdir -p $GRADLE_USER_HOME/init.d &&                 echo 'gradle.beforeProject {project ->' > $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  project.buildscript.repositories {' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://maven.google.com"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://repo1.maven.org/maven2"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://plugins.gradle.org/m2/"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://jitpack.io"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  }' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  project.repositories {' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://maven.google.com"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://repo1.maven.org/maven2"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://plugins.gradle.org/m2/"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://jitpack.io"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  }' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '}' >> $GRADLE_USER_HOME/init.d/repos.gradle && 
                # ---- patch settings.gradle to use local react-native CLI (avoids npx failures) ----
                sed -i 's/autolinkLibrariesWithCommand()/autolinkLibrariesWithCommand("node node_modules\/.bin\/react-native config")/' settings.gradle 2>/dev/null || true && 
                # ---- clean gradle ----
                (./gradlew clean || true) && 
                # ---- pre-resolve AAR transforms so CMake finds prefab paths ----
                ./gradlew :app:dependencies --configuration debugCompileClasspath --no-daemon > /dev/null 2>&1 || true && 
                # ---- enable ABI splits ----
                if grep -q 'splits' app/build.gradle 2>/dev/null; then                     sed -i 's/enable false/enable true/' app/build.gradle || true;                 else                     sed -i '/^android[[:space:]]*{/a\    splits {\n        abi {\n            reset()\n            enable true\n            universalApk false\n            include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"\n        }\n    }' app/build.gradle || true;                 fi && 
                # ---- build debug apk ----
                ./gradlew assembleDebug --no-daemon || exit 1 && 
                APK_PATH="app/build/outputs/apk/debug"

                if ! ls $APK_PATH/*.apk 1> /dev/null 2>&1; then
                    echo "ERROR: APK not generated"
                    exit 1
                fi
                # ---- copy output ----
                cp app/build/outputs/apk/debug/*.apk /output/

                # ---- copy TPL metadata ----
                [ -f ../package.json ] && cp ../package.json /output/ || true
                [ -f ../package-lock.json ] && cp ../package-lock.json /output/ || true
                [ -f ../yarn.lock ] && cp ../yarn.lock /output/ || true
                [ -f ../pnpm-lock.yaml ] && cp ../pnpm-lock.yaml /output/ || true
                [ -f app/build.gradle ] && cp app/build.gradle /output/android-build.gradle || true
                [ -f build.gradle ] && cp build.gradle /output/root-build.gradle || true
                [ -f build.gradle.kts ] && cp build.gradle.kts /output/root-build.gradle.kts || true
                [ -f settings.gradle ] && cp settings.gradle /output/ || true
                [ -f settings.gradle.kts ] && cp settings.gradle.kts /output/ || true
                [ -f gradle/libs.versions.toml ] && cp gradle/libs.versions.toml /output/ || true
                find . -name "*.gradle" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/ 2>/dev/null; done || true
                find . -name "*.gradle.kts" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/ 2>/dev/null; done || true
                mkdir -p /output/libs
                find . -name "*.jar" -not -name "gradle-wrapper.jar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/libs/ 2>/dev/null; done || true
                find . -name "*.aar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/libs/ 2>/dev/null; done || true
                find . -name "*.so" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/libs/ 2>/dev/null; done || true
                    
npm warn deprecated @babel/plugin-proposal-optional-catch-binding@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.
npm warn deprecated @babel/plugin-proposal-numeric-separator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.
npm warn deprecated @babel/plugin-proposal-class-properties@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
npm warn deprecated @babel/plugin-proposal-nullish-coalescing-operator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.
npm warn deprecated @babel/plugin-proposal-optional-chaining@7.21.0: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.
npm warn deprecated @babel/plugin-proposal-object-rest-spread@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.
npm warn deprecated @babel/plugin-proposal-async-generator-functions@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.
npm warn deprecated uglify-es@3.3.9: support for ECMAScript is superseded by `uglify-js` as of v3.13.0

added 1166 packages, and audited 1167 packages in 19s

140 packages are looking for funding
  run `npm fund` for details

43 vulnerabilities (5 low, 12 moderate, 24 high, 2 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.
Downloading https://services.gradle.org/distributions/gradle-8.0.1-all.zip
...............10%................20%................30%................40%................50%................60%................70%................80%................90%................100%

Welcome to Gradle 8.0.1!

Here are the highlights of this release:
 - Improvements to the Kotlin DSL
 - Fine-grained parallelism from the first build with configuration cache
 - Configurable Gradle user home cache cleanup

For more details see https://docs.gradle.org/8.0.1/release-notes.html

To honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/8.0.1/userguide/gradle_daemon.html#sec:disabling_the_daemon.
Daemon will be stopped at the end of the build 
> Task :gradle-plugin:pluginDescriptors
> Task :gradle-plugin:processResources
> Task :gradle-plugin:compileKotlin
> Task :gradle-plugin:compileJava NO-SOURCE
> Task :gradle-plugin:classes
> Task :gradle-plugin:jar
> Task :gradle-plugin:inspectClassesForKotlinIC

> Configure project :react-native-reanimated
Android gradle plugin: 7.4.2
Gradle: 8.0.1
Checking the license for package NDK (Side by side) 23.1.7779620 in /opt/android/licenses
License for package NDK (Side by side) 23.1.7779620 accepted.
Preparing "Install NDK (Side by side) 23.1.7779620 (revision: 23.1.7779620)".
"Install NDK (Side by side) 23.1.7779620 (revision: 23.1.7779620)" ready.
Installing NDK (Side by side) 23.1.7779620 in /opt/android/ndk/23.1.7779620
"Install NDK (Side by side) 23.1.7779620 (revision: 23.1.7779620)" complete.
"Install NDK (Side by side) 23.1.7779620 (revision: 23.1.7779620)" finished.

> Task :app:clean UP-TO-DATE
> Task :react-native-community_checkbox:clean UP-TO-DATE
> Task :react-native-gesture-handler:clean UP-TO-DATE
> Task :react-native-reanimated:cleanCmakeCache
> Task :react-native-reanimated:externalNativeBuildCleanDebug
> Task :react-native-reanimated:externalNativeBuildCleanRelease
> Task :react-native-reanimated:clean
> Task :react-native-safe-area-context:clean UP-TO-DATE
> Task :react-native-screens:clean UP-TO-DATE
> Task :react-native-vector-icons:clean UP-TO-DATE

BUILD SUCCESSFUL in 4m 7s
15 actionable tasks: 9 executed, 6 up-to-date
To honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/8.0.1/userguide/gradle_daemon.html#sec:disabling_the_daemon.
Daemon will be stopped at the end of the build 
> Task :gradle-plugin:compileKotlin UP-TO-DATE
> Task :gradle-plugin:compileJava NO-SOURCE
> Task :gradle-plugin:pluginDescriptors UP-TO-DATE
> Task :gradle-plugin:processResources UP-TO-DATE
> Task :gradle-plugin:classes UP-TO-DATE
> Task :gradle-plugin:jar UP-TO-DATE
> Task :gradle-plugin:inspectClassesForKotlinIC UP-TO-DATE

> Configure project :react-native-reanimated
Android gradle plugin: 7.4.2
Gradle: 8.0.1
Checking the license for package Android SDK Build-Tools 30.0.3 in /opt/android/licenses
License for package Android SDK Build-Tools 30.0.3 accepted.
Preparing "Install Android SDK Build-Tools 30.0.3 (revision: 30.0.3)".
"Install Android SDK Build-Tools 30.0.3 (revision: 30.0.3)" ready.
Installing Android SDK Build-Tools 30.0.3 in /opt/android/build-tools/30.0.3
"Install Android SDK Build-Tools 30.0.3 (revision: 30.0.3)" complete.
"Install Android SDK Build-Tools 30.0.3 (revision: 30.0.3)" finished.
Checking the license for package Android SDK Platform 33 in /opt/android/licenses
License for package Android SDK Platform 33 accepted.
Preparing "Install Android SDK Platform 33 (revision: 3)".
"Install Android SDK Platform 33 (revision: 3)" ready.
Installing Android SDK Platform 33 in /opt/android/platforms/android-33
"Install Android SDK Platform 33 (revision: 3)" complete.
"Install Android SDK Platform 33 (revision: 3)" finished.
Checking the license for package Android SDK Build-Tools 33 in /opt/android/licenses
License for package Android SDK Build-Tools 33 accepted.
Preparing "Install Android SDK Build-Tools 33 (revision: 33.0.0)".
"Install Android SDK Build-Tools 33 (revision: 33.0.0)" ready.
Installing Android SDK Build-Tools 33 in /opt/android/build-tools/33.0.0
"Install Android SDK Build-Tools 33 (revision: 33.0.0)" complete.
"Install Android SDK Build-Tools 33 (revision: 33.0.0)" finished.

> Task :app:buildCodegenCLI SKIPPED
> Task :app:generateCodegenSchemaFromJavaScript SKIPPED
> Task :app:generateCodegenArtifactsFromSchema SKIPPED
> Task :app:generatePackageList
> Task :app:preBuild
> Task :app:preDebugBuild
> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE
> Task :react-native-community_checkbox:preBuild UP-TO-DATE
> Task :react-native-community_checkbox:preDebugBuild UP-TO-DATE
> Task :react-native-community_checkbox:compileDebugAidl NO-SOURCE
> Task :react-native-gesture-handler:preBuild UP-TO-DATE
> Task :react-native-gesture-handler:preDebugBuild UP-TO-DATE
> Task :react-native-reanimated:assertLatestReactNativeWithNewArchitectureTask SKIPPED
> Task :react-native-reanimated:assertMinimalReactNativeVersionTask SKIPPED
> Task :react-native-reanimated:assertNoMultipleInstances
> Task :react-native-reanimated:prepareHeadersForPrefab
> Task :react-native-reanimated:preBuild
> Task :react-native-reanimated:preDebugBuild
> Task :react-native-reanimated:compileDebugAidl NO-SOURCE
> Task :react-native-gesture-handler:compileDebugAidl NO-SOURCE
> Task :react-native-safe-area-context:preBuild UP-TO-DATE
> Task :react-native-safe-area-context:preDebugBuild UP-TO-DATE
> Task :react-native-safe-area-context:compileDebugAidl NO-SOURCE
> Task :react-native-screens:preBuild UP-TO-DATE
> Task :react-native-screens:preDebugBuild UP-TO-DATE
> Task :react-native-screens:compileDebugAidl NO-SOURCE
> Task :react-native-vector-icons:preBuild UP-TO-DATE
> Task :react-native-vector-icons:preDebugBuild UP-TO-DATE
> Task :react-native-vector-icons:compileDebugAidl NO-SOURCE
> Task :app:compileDebugAidl NO-SOURCE
> Task :react-native-community_checkbox:packageDebugRenderscript NO-SOURCE
> Task :react-native-gesture-handler:packageDebugRenderscript NO-SOURCE
> Task :react-native-reanimated:packageDebugRenderscript NO-SOURCE
> Task :react-native-safe-area-context:packageDebugRenderscript NO-SOURCE
> Task :react-native-screens:packageDebugRenderscript NO-SOURCE
> Task :react-native-vector-icons:packageDebugRenderscript NO-SOURCE
> Task :app:compileDebugRenderscript NO-SOURCE
> Task :app:generateDebugBuildConfig
> Task :app:javaPreCompileDebug
> Task :react-native-community_checkbox:writeDebugAarMetadata
> Task :react-native-gesture-handler:writeDebugAarMetadata
> Task :react-native-reanimated:writeDebugAarMetadata
> Task :react-native-safe-area-context:writeDebugAarMetadata
> Task :react-native-screens:writeDebugAarMetadata
> Task :react-native-vector-icons:writeDebugAarMetadata
> Task :app:generateDebugResValues
> Task :react-native-community_checkbox:compileDebugRenderscript NO-SOURCE
> Task :react-native-community_checkbox:generateDebugResValues
> Task :react-native-community_checkbox:generateDebugResources
> Task :app:checkDebugAarMetadata
> Task :react-native-community_checkbox:packageDebugResources
> Task :react-native-gesture-handler:compileDebugRenderscript NO-SOURCE
> Task :react-native-gesture-handler:generateDebugResValues
> Task :react-native-gesture-handler:generateDebugResources
> Task :react-native-gesture-handler:packageDebugResources
> Task :react-native-reanimated:compileDebugRenderscript NO-SOURCE
> Task :react-native-reanimated:generateDebugResValues
> Task :react-native-reanimated:generateDebugResources
> Task :react-native-reanimated:packageDebugResources
> Task :react-native-safe-area-context:compileDebugRenderscript NO-SOURCE
> Task :react-native-safe-area-context:generateDebugResValues
> Task :react-native-safe-area-context:generateDebugResources
> Task :react-native-safe-area-context:packageDebugResources
> Task :react-native-screens:compileDebugRenderscript NO-SOURCE
> Task :react-native-screens:generateDebugResValues
> Task :react-native-screens:generateDebugResources
> Task :react-native-screens:packageDebugResources
> Task :react-native-vector-icons:compileDebugRenderscript NO-SOURCE
> Task :react-native-vector-icons:generateDebugResValues
> Task :react-native-vector-icons:generateDebugResources
> Task :react-native-vector-icons:packageDebugResources
> Task :app:mapDebugSourceSetPaths
> Task :app:generateDebugResources
> Task :app:createDebugCompatibleScreenManifests
> Task :app:extractDeepLinksDebug
> Task :react-native-community_checkbox:extractDeepLinksDebug
> Task :react-native-gesture-handler:extractDeepLinksDebug
> Task :react-native-reanimated:extractDeepLinksDebug
> Task :react-native-safe-area-context:extractDeepLinksDebug
> Task :react-native-screens:extractDeepLinksDebug
> Task :react-native-vector-icons:extractDeepLinksDebug

> Task :react-native-safe-area-context:processDebugManifest
package="com.th3rdwave.safeareacontext" found in source AndroidManifest.xml: /app/node_modules/react-native-safe-area-context/android/src/main/AndroidManifest.xml.
Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated.
Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace
This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.

> Task :react-native-screens:processDebugManifest
package="com.swmansion.rnscreens" found in source AndroidManifest.xml: /app/node_modules/react-native-screens/android/src/main/AndroidManifest.xml.
Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated.
Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace
This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.

> Task :react-native-gesture-handler:processDebugManifest
package="com.swmansion.gesturehandler" found in source AndroidManifest.xml: /app/node_modules/react-native-gesture-handler/android/src/main/AndroidManifest.xml.
Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated.
Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace
This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.

> Task :react-native-vector-icons:processDebugManifest
package="com.oblador.vectoricons" found in source AndroidManifest.xml: /app/node_modules/react-native-vector-icons/android/src/main/AndroidManifest.xml.
Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated.
Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace
This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.

> Task :react-native-reanimated:processDebugManifest
package="com.swmansion.reanimated" found in source AndroidManifest.xml: /app/node_modules/react-native-reanimated/android/src/main/AndroidManifest.xml.
Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated.
Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace
This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.

> Task :react-native-community_checkbox:processDebugManifest
package="com.reactnativecommunity.checkbox" found in source AndroidManifest.xml: /app/node_modules/@react-native-community/checkbox/android/src/main/AndroidManifest.xml.
Setting the namespace via a source AndroidManifest.xml's package attribute is deprecated.
Please instead set the namespace (or testNamespace) in the module's build.gradle file, as described here: https://developer.android.com/studio/build/configure-app-module#set-namespace
This migration can be done automatically using the AGP Upgrade Assistant, please refer to https://developer.android.com/studio/build/agp-upgrade-assistant for more information.

> Task :app:mergeDebugResources
> Task :react-native-community_checkbox:compileDebugLibraryResources
> Task :app:processDebugMainManifest
> Task :app:processDebugManifest
> Task :react-native-gesture-handler:compileDebugLibraryResources
> Task :react-native-reanimated:compileDebugLibraryResources
> Task :react-native-safe-area-context:compileDebugLibraryResources
> Task :react-native-reanimated:parseDebugLocalResources
> Task :react-native-gesture-handler:parseDebugLocalResources
> Task :react-native-community_checkbox:parseDebugLocalResources
> Task :react-native-safe-area-context:parseDebugLocalResources
> Task :react-native-screens:compileDebugLibraryResources
> Task :react-native-community_checkbox:generateDebugRFile
> Task :react-native-vector-icons:compileDebugLibraryResources
> Task :react-native-screens:parseDebugLocalResources
> Task :react-native-reanimated:generateDebugRFile
> Task :react-native-safe-area-context:generateDebugRFile
> Task :app:processDebugManifestForPackage
> Task :react-native-vector-icons:parseDebugLocalResources
> Task :react-native-gesture-handler:generateDebugRFile
> Task :react-native-community_checkbox:generateDebugBuildConfig
> Task :react-native-community_checkbox:javaPreCompileDebug
> Task :react-native-gesture-handler:generateDebugBuildConfig
> Task :react-native-vector-icons:generateDebugRFile
> Task :react-native-screens:generateDebugRFile
Note: /app/node_modules/@react-native-community/checkbox/android/src/main/java/com/reactnativecommunity/checkbox/ReactCheckBoxEvent.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

> Task :react-native-community_checkbox:compileDebugJavaWithJavac

> Task :react-native-reanimated:generateDebugBuildConfig
> Task :react-native-reanimated:packageNdkLibs NO-SOURCE
> Task :react-native-reanimated:javaPreCompileDebug
> Task :react-native-gesture-handler:javaPreCompileDebug
> Task :react-native-community_checkbox:bundleLibCompileToJarDebug

> Task :react-native-reanimated:compileDebugJavaWithJavac
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.

> Task :react-native-safe-area-context:generateDebugBuildConfig
> Task :react-native-reanimated:bundleLibCompileToJarDebug
> Task :app:processDebugResources

> Task :react-native-gesture-handler:compileDebugKotlin
'compileDebugJavaWithJavac' task (current target is 11) and 'compileDebugKotlin' task (current target is 1.8) jvm target compatibility should be set to the same Java version.

> Task :react-native-safe-area-context:javaPreCompileDebug
> Task :react-native-screens:generateDebugBuildConfig

> Task :react-native-safe-area-context:compileDebugKotlin
'compileDebugJavaWithJavac' task (current target is 11) and 'compileDebugKotlin' task (current target is 1.8) jvm target compatibility should be set to the same Java version.

> Task :react-native-screens:javaPreCompileDebug
> Task :react-native-vector-icons:generateDebugBuildConfig
> Task :react-native-vector-icons:javaPreCompileDebug

> Task :react-native-screens:compileDebugKotlin
'compileDebugJavaWithJavac' task (current target is 11) and 'compileDebugKotlin' task (current target is 17) jvm target compatibility should be set to the same Java version.
Consider using JVM toolchain: https://kotl.in/gradle/jvm/toolchain


> Task :app:mergeDebugShaders
Note: /app/node_modules/react-native-vector-icons/android/src/oldarch/java/com/oblador/vectoricons/VectorIconsModule.java uses or overrides a deprecated API.

> Task :react-native-vector-icons:compileDebugJavaWithJavac
Note: Recompile with -Xlint:deprecation for details.

> Task :react-native-vector-icons:bundleLibCompileToJarDebug
> Task :app:compileDebugShaders NO-SOURCE
> Task :app:copyReactNativeVectorIconFonts
> Task :app:generateDebugAssets
> Task :react-native-community_checkbox:mergeDebugShaders
> Task :react-native-community_checkbox:compileDebugShaders NO-SOURCE
> Task :react-native-community_checkbox:generateDebugAssets UP-TO-DATE
> Task :react-native-community_checkbox:packageDebugAssets
> Task :react-native-gesture-handler:mergeDebugShaders
> Task :react-native-gesture-handler:compileDebugShaders NO-SOURCE
> Task :react-native-gesture-handler:generateDebugAssets UP-TO-DATE
> Task :react-native-gesture-handler:packageDebugAssets
> Task :react-native-reanimated:mergeDebugShaders
> Task :react-native-reanimated:compileDebugShaders NO-SOURCE
> Task :react-native-reanimated:generateDebugAssets UP-TO-DATE
> Task :react-native-reanimated:packageDebugAssets
> Task :react-native-safe-area-context:mergeDebugShaders
> Task :react-native-safe-area-context:compileDebugShaders NO-SOURCE
> Task :react-native-safe-area-context:generateDebugAssets UP-TO-DATE
> Task :react-native-safe-area-context:packageDebugAssets
> Task :react-native-screens:mergeDebugShaders
> Task :react-native-screens:compileDebugShaders NO-SOURCE
> Task :react-native-screens:generateDebugAssets UP-TO-DATE
> Task :react-native-screens:packageDebugAssets
> Task :react-native-vector-icons:mergeDebugShaders
> Task :react-native-vector-icons:compileDebugShaders NO-SOURCE
> Task :react-native-vector-icons:generateDebugAssets UP-TO-DATE
> Task :react-native-vector-icons:packageDebugAssets
> Task :app:mergeDebugAssets
> Task :app:processDebugJavaRes NO-SOURCE
> Task :react-native-community_checkbox:processDebugJavaRes NO-SOURCE
> Task :react-native-community_checkbox:bundleLibResDebug NO-SOURCE
> Task :react-native-gesture-handler:processDebugJavaRes NO-SOURCE
> Task :react-native-reanimated:processDebugJavaRes NO-SOURCE
> Task :react-native-reanimated:bundleLibResDebug NO-SOURCE
> Task :react-native-safe-area-context:processDebugJavaRes NO-SOURCE
> Task :react-native-screens:processDebugJavaRes NO-SOURCE
> Task :react-native-vector-icons:processDebugJavaRes NO-SOURCE
> Task :react-native-vector-icons:bundleLibResDebug NO-SOURCE
> Task :app:compressDebugAssets
> Task :app:checkDebugDuplicateClasses
> Task :app:desugarDebugFileDependencies

> Task :react-native-safe-area-context:compileDebugKotlin
w: /app/node_modules/react-native-safe-area-context/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaView.kt: (58, 23): 'getter for uiImplementation: UIImplementation!' is deprecated. Deprecated in Java

> Task :app:mergeExtDexDebug

> Task :react-native-gesture-handler:compileDebugKotlin
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/core/GestureHandler.kt: (770, 11): Name shadowed: size
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt: (9, 51): Unreachable code
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerEnabledRootView.kt: (10, 80): Unreachable code
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt: (80, 18): 'onChildStartedNativeGesture(MotionEvent!): Unit' is deprecated. Deprecated in Java
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt: (86, 42): Parameter 'disallowIntercept' is never used
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerRootHelper.kt: (118, 28): Parameter 'viewTag' is never used
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt: (7, 44): 'RCTEventEmitter' is deprecated. Deprecated in Java
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt: (14, 11): 'init(Int): Unit' is deprecated. Deprecated in Java
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt: (30, 42): 'RCTEventEmitter' is deprecated. Deprecated in Java
w: /app/node_modules/react-native-gesture-handler/android/src/main/java/com/swmansion/gesturehandler/react/RNGestureHandlerTouchEvent.kt: (31, 21): 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java

> Task :react-native-screens:compileDebugKotlin
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/Screen.kt:87:22 'constructor GuardedRunnable(ReactContext!)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt:65:28 'setter for targetElevation: Float' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt:127:28 'setter for targetElevation: Float' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt:86:34 'getter for systemWindowInsetTop: Int' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt:229:37 'setColorFilter(Int, PorterDuff.Mode): Unit' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt:65:22 'constructor GuardedRunnable(ReactContext!)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt:110:22 'constructor GuardedRunnable(ReactContext!)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt:137:47 'replaceSystemWindowInsets(Int, Int, Int, Int): WindowInsetsCompat' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt:138:51 'getter for systemWindowInsetLeft: Int' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt:140:51 'getter for systemWindowInsetRight: Int' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt:141:51 'getter for systemWindowInsetBottom: Int' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt:100:22 Parameter 'view' is never used
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt:100:43 Parameter 'placeholder' is never used
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/SearchBarView.kt:147:43 Parameter 'flag' is never used
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt:5:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt:10:5 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt:17:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt:20:25 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-screens/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt:7:42 Parameter 'width' is never used
w: file:///app/node_modules/react-native-screens/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt:7:54 Parameter 'height' is never used

> Task :react-native-gesture-handler:compileDebugJavaWithJavac
> Task :react-native-gesture-handler:bundleLibCompileToJarDebug
> Task :react-native-safe-area-context:compileDebugJavaWithJavac
> Task :react-native-safe-area-context:bundleLibCompileToJarDebug
> Task :react-native-screens:compileDebugJavaWithJavac
> Task :react-native-screens:bundleLibCompileToJarDebug
> Task :react-native-gesture-handler:bundleLibResDebug
> Task :app:compileDebugJavaWithJavac
> Task :react-native-screens:bundleLibResDebug
> Task :react-native-safe-area-context:bundleLibResDebug
> Task :react-native-community_checkbox:bundleLibRuntimeToJarDebug
> Task :react-native-gesture-handler:bundleLibRuntimeToJarDebug
> Task :react-native-reanimated:bundleLibRuntimeToJarDebug
> Task :react-native-safe-area-context:bundleLibRuntimeToJarDebug
> Task :react-native-screens:bundleLibRuntimeToJarDebug
> Task :react-native-vector-icons:bundleLibRuntimeToJarDebug
> Task :app:mergeDebugJniLibFolders
> Task :app:dexBuilderDebug
> Task :react-native-community_checkbox:mergeDebugJniLibFolders
> Task :react-native-community_checkbox:mergeDebugNativeLibs NO-SOURCE
> Task :react-native-community_checkbox:copyDebugJniLibsProjectOnly
> Task :react-native-gesture-handler:mergeDebugJniLibFolders
> Task :react-native-gesture-handler:mergeDebugNativeLibs NO-SOURCE
> Task :react-native-gesture-handler:copyDebugJniLibsProjectOnly
> Task :app:mergeProjectDexDebug
> Task :app:mergeDebugJavaResource
> Task :react-native-reanimated:configureCMakeDebug[arm64-v8a]
> Task :app:mergeLibDexDebug
> Task :react-native-reanimated:buildCMakeDebug[arm64-v8a]
> Task :react-native-reanimated:configureCMakeDebug[armeabi-v7a]
> Task :react-native-reanimated:buildCMakeDebug[armeabi-v7a]
> Task :react-native-reanimated:configureCMakeDebug[x86]
> Task :react-native-reanimated:buildCMakeDebug[x86]
> Task :react-native-reanimated:configureCMakeDebug[x86_64]
> Task :react-native-reanimated:buildCMakeDebug[x86_64]
> Task :react-native-reanimated:externalNativeBuildDebug
> Task :react-native-reanimated:mergeDebugJniLibFolders
> Task :react-native-safe-area-context:mergeDebugJniLibFolders
> Task :react-native-safe-area-context:mergeDebugNativeLibs NO-SOURCE
> Task :react-native-safe-area-context:copyDebugJniLibsProjectOnly
> Task :react-native-screens:mergeDebugJniLibFolders
> Task :react-native-screens:mergeDebugNativeLibs NO-SOURCE
> Task :react-native-screens:copyDebugJniLibsProjectOnly
> Task :react-native-vector-icons:mergeDebugJniLibFolders
> Task :react-native-vector-icons:mergeDebugNativeLibs NO-SOURCE
> Task :react-native-vector-icons:copyDebugJniLibsProjectOnly
> Task :app:validateSigningDebug
> Task :app:writeDebugAppMetadata
> Task :app:writeDebugSigningConfigVersions
> Task :react-native-community_checkbox:stripDebugDebugSymbols NO-SOURCE
> Task :react-native-community_checkbox:copyDebugJniLibsProjectAndLocalJars
> Task :react-native-reanimated:mergeDebugNativeLibs
> Task :react-native-community_checkbox:extractDebugAnnotations
> Task :react-native-community_checkbox:extractDeepLinksForAarDebug
> Task :react-native-community_checkbox:mergeDebugGeneratedProguardFiles
> Task :react-native-community_checkbox:mergeDebugConsumerProguardFiles
> Task :react-native-community_checkbox:prepareDebugArtProfile
> Task :react-native-community_checkbox:prepareLintJarForPublish
> Task :react-native-gesture-handler:stripDebugDebugSymbols NO-SOURCE
> Task :react-native-community_checkbox:mergeDebugJavaResource
> Task :react-native-gesture-handler:copyDebugJniLibsProjectAndLocalJars
> Task :react-native-community_checkbox:syncDebugLibJars
> Task :react-native-community_checkbox:bundleDebugAar
> Task :react-native-community_checkbox:assembleDebug
> Task :react-native-gesture-handler:extractDebugAnnotations
> Task :react-native-gesture-handler:extractDeepLinksForAarDebug
> Task :react-native-gesture-handler:mergeDebugGeneratedProguardFiles
> Task :react-native-gesture-handler:mergeDebugConsumerProguardFiles
> Task :react-native-gesture-handler:prepareDebugArtProfile
> Task :react-native-gesture-handler:prepareLintJarForPublish
> Task :react-native-gesture-handler:mergeDebugJavaResource
> Task :react-native-gesture-handler:syncDebugLibJars
> Task :react-native-gesture-handler:bundleDebugAar
> Task :react-native-gesture-handler:assembleDebug
> Task :react-native-reanimated:copyDebugJniLibsProjectOnly
> Task :react-native-reanimated:extractDebugAnnotations
> Task :react-native-reanimated:stripDebugDebugSymbols
> Task :react-native-reanimated:extractDeepLinksForAarDebug
> Task :react-native-reanimated:mergeDebugGeneratedProguardFiles
> Task :react-native-reanimated:mergeDebugConsumerProguardFiles
> Task :react-native-reanimated:generateJsonModelDebug
> Task :react-native-reanimated:prefabDebugConfigurePackage
> Task :react-native-reanimated:prefabDebugPackage
> Task :react-native-reanimated:prepareDebugArtProfile
> Task :react-native-reanimated:prepareLintJarForPublish
> Task :react-native-safe-area-context:stripDebugDebugSymbols NO-SOURCE
> Task :react-native-reanimated:mergeDebugJavaResource
> Task :react-native-safe-area-context:copyDebugJniLibsProjectAndLocalJars
> Task :react-native-reanimated:syncDebugLibJars
> Task :react-native-safe-area-context:extractDebugAnnotations
> Task :react-native-safe-area-context:extractDeepLinksForAarDebug
> Task :react-native-reanimated:copyDebugJniLibsProjectAndLocalJars
> Task :react-native-safe-area-context:mergeDebugGeneratedProguardFiles
> Task :app:mergeDebugNativeLibs
> Task :react-native-reanimated:bundleDebugAar
> Task :react-native-reanimated:assembleDebug
> Task :react-native-safe-area-context:mergeDebugConsumerProguardFiles
> Task :react-native-safe-area-context:prepareDebugArtProfile
> Task :react-native-screens:stripDebugDebugSymbols NO-SOURCE
> Task :react-native-screens:extractDebugAnnotations
> Task :react-native-screens:extractDeepLinksForAarDebug
> Task :react-native-screens:mergeDebugGeneratedProguardFiles
> Task :react-native-screens:mergeDebugConsumerProguardFiles
> Task :react-native-screens:prepareDebugArtProfile
> Task :react-native-vector-icons:stripDebugDebugSymbols NO-SOURCE
> Task :react-native-screens:mergeDebugJavaResource
> Task :react-native-vector-icons:copyDebugJniLibsProjectAndLocalJars
> Task :react-native-screens:copyDebugJniLibsProjectAndLocalJars
> Task :react-native-safe-area-context:mergeDebugJavaResource
> Task :react-native-screens:prepareLintJarForPublish
> Task :react-native-safe-area-context:prepareLintJarForPublish
> Task :react-native-vector-icons:extractDebugAnnotations
> Task :react-native-safe-area-context:syncDebugLibJars
> Task :react-native-safe-area-context:bundleDebugAar
> Task :react-native-safe-area-context:assembleDebug
> Task :react-native-screens:syncDebugLibJars
> Task :react-native-screens:bundleDebugAar
> Task :react-native-screens:assembleDebug
> Task :react-native-vector-icons:extractDeepLinksForAarDebug
> Task :react-native-vector-icons:mergeDebugGeneratedProguardFiles
> Task :react-native-vector-icons:mergeDebugConsumerProguardFiles
> Task :react-native-vector-icons:prepareDebugArtProfile
> Task :react-native-vector-icons:prepareLintJarForPublish
> Task :react-native-vector-icons:mergeDebugJavaResource
> Task :react-native-vector-icons:syncDebugLibJars
> Task :react-native-vector-icons:bundleDebugAar
> Task :react-native-vector-icons:assembleDebug
> Task :app:stripDebugDebugSymbols
> Task :app:packageDebug
> Task :app:createDebugApkListingFileRedirect
> Task :app:assembleDebug
w: Detected multiple Kotlin daemon sessions at build/kotlin/sessions

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.

See https://docs.gradle.org/8.0.1/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 4m 48s
221 actionable tasks: 216 executed, 5 up-to-date

> docker run --rm -v /home/ubuntu/storage/extracted/Sureshkumar041-iicab/iicab-c3398530d3984efd132546be941a0165a3ac6566:/source:ro -v /home/ubuntu/BachelorsThesis/scripts/RN/output/Sureshkumar041-iicab:/output -v /home/ubuntu/.npm:/root/.npm react-android:22-jdk17 bash -c 
                set -e

                cp -r /source/. /app &&                 cd /app && 
                # ---- install deps (yarn or npm) ----
                if [ -f yarn.lock ]; then
                    yarn install;
                else
                    npm install --ignore-scripts;
                fi && 
                # ---- stub missing parent package.json (monorepo metro configs) ----
                [ ! -f ../package.json ] && cp package.json ../package.json 2>/dev/null || true && 
                # ---- patch toReversed (Node <20 compat) ----
                find node_modules -name "loadConfig.js" -path "*/metro-config/*" -exec sed -i 's/\.toReversed()/.slice().reverse()/g' {} \; 2>/dev/null || true && 
                # ---- patch missing expo/AppEntry ----
                if grep -q '"main".*expo/AppEntry' package.json 2>/dev/null &&                    [ ! -f node_modules/expo/AppEntry.js ] && [ ! -f node_modules/expo/AppEntry.ts ]; then                     node -e "const fs=require('fs'); const p=JSON.parse(fs.readFileSync('package.json','utf8')); if(fs.existsSync('index.js')){p.main='index.js'; fs.writeFileSync('package.json',JSON.stringify(p,null,2));}" 2>/dev/null || true;                 fi && 
                # ---- patch broken metro config (ESM-only, null-returning, or monorepo-only) ----
                # NOTE: do NOT replace configs that merely use expo/metro-config — those carry
                # Expo-specific resolver paths (watchFolders, extraNodeModules) needed for
                # packages like @react-native-masked-view/masked-view to resolve.
                if grep -q 'react-native-monorepo-config' metro.config.js 2>/dev/null ||                    ! node -e "const c=require('./metro.config.js'); if(!c||typeof c!=='object') process.exit(1);" 2>/dev/null; then                     if [ -d node_modules/@react-native/metro-config ]; then                         printf 'const {getDefaultConfig, mergeConfig} = require("@react-native/metro-config");
module.exports = mergeConfig(getDefaultConfig(__dirname), {});
' > metro.config.js;                     else                         printf 'const {getDefaultConfig} = require("metro-config");
module.exports = getDefaultConfig(__dirname);
' > metro.config.js;                     fi;                 fi && 
                # ---- stub missing google-services.json (Firebase/Expo prebuild) ----
                if [ ! -f google-services.json ]; then                     python3 -c "import json; open('google-services.json','w').write(json.dumps({'project_info':{'project_number':'000000000000','project_id':'stub','storage_bucket':'stub.appspot.com'},'client':[{'client_info':{'mobilesdk_app_id':'1:000000000000:android:0000000000000000','android_client_info':{'package_name':'com.stub'}},'oauth_client':[],'api_key':[{'current_key':'stub'}],'services':{'appinvite_service':{'other_platform_oauth_client':[]}}}],'configuration_version':'1'}))" 2>/dev/null || true;                 fi && 
                # ---- detect expo ----
                if grep -q '"expo"' package.json && [ ! -d android ]; then
                    echo "Expo project detected";
                    CI=1 npx --yes expo prebuild --platform android
                fi && 
                # ---- fix expo/metro-config: serializer + Flow transformIgnorePatterns ----
                # Runs AFTER prebuild because prebuild generates metro.config.js for managed-workflow
                # projects — patching before prebuild would be overwritten by the generated file.
                # Fix 1: remove customSerializer that returns JS string instead of JSON
                #   ("var __BUND..." → "Serializer did not return expected format").
                # Fix 2: add transformIgnorePatterns so expo/src/Expo.ts goes through Babel
                #   (default pattern excludes all node_modules → raw Flow types → SyntaxError).
                if [ -f metro.config.js ] && [ -d node_modules/expo ] &&                    ( grep -q 'expo/metro-config\|@expo/metro-config' metro.config.js 2>/dev/null ||                      ! grep -q 'transformIgnorePatterns' metro.config.js 2>/dev/null ); then                     cp metro.config.js metro.config.orig.js &&                     printf 'const c=require("./metro.config.orig.js");const r=Object.assign({},c);if(r.serializer){r.serializer=Object.assign({},r.serializer);delete r.serializer.customSerializer;}r.transformer=Object.assign({},r.transformer||{});if(!r.transformer.transformIgnorePatterns){r.transformer.transformIgnorePatterns=["node_modules/(?!(react-native|@react-native|expo|@expo|@unimodules|react-clone-referenced-element|@react-navigation|native-base)/)"];}module.exports=r;\n' > metro.config.js;                 fi && 
                # ---- stub missing metro watchFolders paths ----
                mkdir -p /src 2>/dev/null || true && 
                # ---- fix babel configs that use react-native-builder-bob ----
                # builder-bob is a library-dev tool; its getConfig() throws "Couldn't determine the source
                # directory" when built outside the library's own workspace. Replace with a standard preset.
                if grep -ql 'react-native-builder-bob' babel.config.js babel.config.json .babelrc .babelrc.js 2>/dev/null; then                     if [ -d node_modules/babel-preset-expo ]; then                         printf 'module.exports=function(api){api.cache(true);return{presets:["babel-preset-expo"]};};
' > babel.config.js;                     elif [ -d node_modules/@react-native/babel-preset ]; then                         printf 'module.exports={presets:["module:@react-native/babel-preset"]};' > babel.config.js;                     else                         printf 'module.exports={presets:["module:metro-react-native-babel-preset"]};' > babel.config.js;                     fi;                 fi && 
                # ---- ensure TypeScript babel support (fixes 'interface' SyntaxError in metro bundling) ----
                if [ -d node_modules/babel-preset-expo ]; then                     grep -ql "expo\|typescript" babel.config.js .babelrc .babelrc.js babel.config.json 2>/dev/null ||                     printf 'module.exports=function(api){api.cache(true);return{presets:["babel-preset-expo"]};};
' > babel.config.js;                 fi && 
                # ---- stub missing-asset-registry-path (Metro virtual module not resolved in release) ----
                # Metro normally aliases this to @react-native/assets-registry/registry at bundle time.
                # When that alias is missing, any PNG asset in node_modules triggers "Unable to resolve module".
                if [ ! -d node_modules/missing-asset-registry-path ]; then                     mkdir -p node_modules/missing-asset-registry-path &&                     if [ -f node_modules/@react-native/assets-registry/registry.js ]; then                         printf 'module.exports=require("@react-native/assets-registry/registry");' > node_modules/missing-asset-registry-path/index.js;                     else                         printf 'module.exports={registerAsset:function(){return 0;},getAssetByID:function(){return null;}};' > node_modules/missing-asset-registry-path/index.js;                     fi;                 fi && 
                # ---- stub @react-native-masked-view/masked-view if missing ----
                # Required by @react-navigation/elements but often not installed as a direct dependency.
                if [ ! -d node_modules/@react-native-masked-view/masked-view ]; then                     mkdir -p node_modules/@react-native-masked-view/masked-view &&                     printf '{"name":"@react-native-masked-view/masked-view","version":"0.1.11","main":"index.js"}' > node_modules/@react-native-masked-view/masked-view/package.json &&                     printf 'const React=require("react");const {View}=require("react-native");function MaskedView(p){return React.createElement(View,p.style?{style:p.style}:{},p.children);}module.exports=MaskedView;module.exports.default=MaskedView;' > node_modules/@react-native-masked-view/masked-view/index.js;                 fi && 
                export PATH="/app/node_modules/.bin:$PATH" &&                 cd android && 
                chmod +x gradlew && 
                # ---- inject fallback repositories via Gradle init script ----
                mkdir -p $GRADLE_USER_HOME/init.d &&                 echo 'gradle.beforeProject {project ->' > $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  project.buildscript.repositories {' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://maven.google.com"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://repo1.maven.org/maven2"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://plugins.gradle.org/m2/"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://jitpack.io"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  }' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  project.repositories {' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://maven.google.com"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://repo1.maven.org/maven2"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://plugins.gradle.org/m2/"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '    maven {url "https://jitpack.io"}' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '  }' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo '}' >> $GRADLE_USER_HOME/init.d/repos.gradle && 
                # ---- patch settings.gradle to use local react-native CLI (avoids npx failures) ----
                sed -i 's/autolinkLibrariesWithCommand()/autolinkLibrariesWithCommand("node node_modules\/.bin\/react-native config")/' settings.gradle 2>/dev/null || true && 
                # ---- disable Sentry source map upload (no credentials in CI) ----
                export SENTRY_DISABLE_AUTO_UPLOAD=true &&                 echo "sentryUploadEnabled=false" >> gradle.properties 2>/dev/null || true && 
                # ---- enable ABI splits ----
                if grep -q 'splits' app/build.gradle 2>/dev/null; then                     sed -i 's/enable false/enable true/' app/build.gradle || true;                 else                     sed -i '/^android[[:space:]]*{/a\    splits {\n        abi {\n            reset()\n            enable true\n            universalApk false\n            include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"\n        }\n    }' app/build.gradle || true;                 fi && 
                # ---- enable R8 ----
                sed -i 's/enableProguardInReleaseBuilds = false/enableProguardInReleaseBuilds = true/' app/build.gradle || true && 
                # ---- sign release with debug key ----
                sed -i '/buildTypes/,/}/s/release {/release {
            signingConfig signingConfigs.debug/' app/build.gradle || true && 
                # ---- pre-resolve AAR transforms so CMake finds prefab paths ----
                ./gradlew :app:dependencies --configuration releaseCompileClasspath --no-daemon > /dev/null 2>&1 || true && 
                # ---- build release apk ----
                ./gradlew assembleRelease --no-daemon || exit 1 &&                     
                APK_PATH="app/build/outputs/apk/release"

                if ! ls $APK_PATH/*.apk 1> /dev/null 2>&1; then
                    echo "ERROR: APK not generated"
                    exit 1
                fi

                # ---- copy output ----
                cp app/build/outputs/apk/release/*.apk /output/r8/

                # ---- copy TPL metadata ----
                [ -f ../package.json ] && cp ../package.json /output/r8/ || true
                [ -f ../package-lock.json ] && cp ../package-lock.json /output/r8/ || true
                [ -f ../yarn.lock ] && cp ../yarn.lock /output/r8/ || true
                [ -f ../pnpm-lock.yaml ] && cp ../pnpm-lock.yaml /output/r8/ || true
                [ -f app/build.gradle ] && cp app/build.gradle /output/r8/android-build.gradle || true
                [ -f build.gradle ] && cp build.gradle /output/r8/root-build.gradle || true
                [ -f build.gradle.kts ] && cp build.gradle.kts /output/r8/root-build.gradle.kts || true
                [ -f settings.gradle ] && cp settings.gradle /output/r8/ || true
                [ -f settings.gradle.kts ] && cp settings.gradle.kts /output/r8/ || true
                [ -f gradle/libs.versions.toml ] && cp gradle/libs.versions.toml /output/r8/ || true
                find . -name "*.gradle" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true
                find . -name "*.gradle.kts" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true
                mkdir -p /output/r8/libs
                find . -name "*.jar" -not -name "gradle-wrapper.jar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true
                find . -name "*.aar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true
                find . -name "*.so" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true
                    
npm warn deprecated @babel/plugin-proposal-optional-catch-binding@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-catch-binding instead.
npm warn deprecated @babel/plugin-proposal-numeric-separator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-numeric-separator instead.
npm warn deprecated @babel/plugin-proposal-nullish-coalescing-operator@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-nullish-coalescing-operator instead.
npm warn deprecated @babel/plugin-proposal-class-properties@7.18.6: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-class-properties instead.
npm warn deprecated @babel/plugin-proposal-optional-chaining@7.21.0: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-optional-chaining instead.
npm warn deprecated @babel/plugin-proposal-async-generator-functions@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-async-generator-functions instead.
npm warn deprecated @babel/plugin-proposal-object-rest-spread@7.20.7: This proposal has been merged to the ECMAScript standard and thus this plugin is no longer maintained. Please use @babel/plugin-transform-object-rest-spread instead.
npm warn deprecated uglify-es@3.3.9: support for ECMAScript is superseded by `uglify-js` as of v3.13.0

added 1166 packages, and audited 1167 packages in 15s

140 packages are looking for funding
  run `npm fund` for details

43 vulnerabilities (5 low, 12 moderate, 24 high, 2 critical)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.
sed: -e expression #1, char 37: unterminated `s' command
To honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/8.0.1/userguide/gradle_daemon.html#sec:disabling_the_daemon.
Daemon will be stopped at the end of the build 
> Task :gradle-plugin:compileKotlin UP-TO-DATE
> Task :gradle-plugin:compileJava NO-SOURCE
> Task :gradle-plugin:pluginDescriptors UP-TO-DATE
> Task :gradle-plugin:processResources UP-TO-DATE
> Task :gradle-plugin:classes UP-TO-DATE
> Task :gradle-plugin:jar UP-TO-DATE
> Task :gradle-plugin:inspectClassesForKotlinIC UP-TO-DATE

FAILURE: Build failed with an exception.

* Where:
Build file '/app/android/app/build.gradle' line: 1

* What went wrong:
A problem occurred evaluating project ':app'.
> Failed to apply plugin 'com.android.internal.application'.
   > Cannot parse project property android.disableAutomaticComponentCreation='truesentryUploadEnabled=false' of type 'class java.lang.String' as boolean. Expected 'true' or 'false'.

* 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

BUILD FAILED in 11s
5 actionable tasks: 5 up-to-date

> echo Build failed with Node 22 and jdk version 17 with the following error: Command '['docker', 'run', '--rm', '-v', '/home/ubuntu/storage/extracted/Sureshkumar041-iicab/iicab-c3398530d3984efd132546be941a0165a3ac6566:/source:ro', '-v', '/home/ubuntu/BachelorsThesis/scripts/RN/output/Sureshkumar041-iicab:/output', '-v', '/home/ubuntu/.npm:/root/.npm', 'react-android:22-jdk17', 'bash', '-c', '\n                set -e\n\n                cp -r /source/. /app &&                 cd /app && \n                # ---- install deps (yarn or npm) ----\n                if [ -f yarn.lock ]; then\n                    yarn install;\n                else\n                    npm install --ignore-scripts;\n                fi && \n                # ---- stub missing parent package.json (monorepo metro configs) ----\n                [ ! -f ../package.json ] && cp package.json ../package.json 2>/dev/null || true && \n                # ---- patch toReversed (Node <20 compat) ----\n                find node_modules -name "loadConfig.js" -path "*/metro-config/*" -exec sed -i \'s/\\.toReversed()/.slice().reverse()/g\' {} \\; 2>/dev/null || true && \n                # ---- patch missing expo/AppEntry ----\n                if grep -q \'"main".*expo/AppEntry\' package.json 2>/dev/null &&                    [ ! -f node_modules/expo/AppEntry.js ] && [ ! -f node_modules/expo/AppEntry.ts ]; then                     node -e "const fs=require(\'fs\'); const p=JSON.parse(fs.readFileSync(\'package.json\',\'utf8\')); if(fs.existsSync(\'index.js\')){p.main=\'index.js\'; fs.writeFileSync(\'package.json\',JSON.stringify(p,null,2));}" 2>/dev/null || true;                 fi && \n                # ---- patch broken metro config (ESM-only, null-returning, or monorepo-only) ----\n                # NOTE: do NOT replace configs that merely use expo/metro-config — those carry\n                # Expo-specific resolver paths (watchFolders, extraNodeModules) needed for\n                # packages like @react-native-masked-view/masked-view to resolve.\n                if grep -q \'react-native-monorepo-config\' metro.config.js 2>/dev/null ||                    ! node -e "const c=require(\'./metro.config.js\'); if(!c||typeof c!==\'object\') process.exit(1);" 2>/dev/null; then                     if [ -d node_modules/@react-native/metro-config ]; then                         printf \'const {getDefaultConfig, mergeConfig} = require("@react-native/metro-config");\nmodule.exports = mergeConfig(getDefaultConfig(__dirname), {});\n\' > metro.config.js;                     else                         printf \'const {getDefaultConfig} = require("metro-config");\nmodule.exports = getDefaultConfig(__dirname);\n\' > metro.config.js;                     fi;                 fi && \n                # ---- stub missing google-services.json (Firebase/Expo prebuild) ----\n                if [ ! -f google-services.json ]; then                     python3 -c "import json; open(\'google-services.json\',\'w\').write(json.dumps({\'project_info\':{\'project_number\':\'000000000000\',\'project_id\':\'stub\',\'storage_bucket\':\'stub.appspot.com\'},\'client\':[{\'client_info\':{\'mobilesdk_app_id\':\'1:000000000000:android:0000000000000000\',\'android_client_info\':{\'package_name\':\'com.stub\'}},\'oauth_client\':[],\'api_key\':[{\'current_key\':\'stub\'}],\'services\':{\'appinvite_service\':{\'other_platform_oauth_client\':[]}}}],\'configuration_version\':\'1\'}))" 2>/dev/null || true;                 fi && \n                # ---- detect expo ----\n                if grep -q \'"expo"\' package.json && [ ! -d android ]; then\n                    echo "Expo project detected";\n                    CI=1 npx --yes expo prebuild --platform android\n                fi && \n                # ---- fix expo/metro-config: serializer + Flow transformIgnorePatterns ----\n                # Runs AFTER prebuild because prebuild generates metro.config.js for managed-workflow\n                # projects — patching before prebuild would be overwritten by the generated file.\n                # Fix 1: remove customSerializer that returns JS string instead of JSON\n                #   ("var __BUND..." → "Serializer did not return expected format").\n                # Fix 2: add transformIgnorePatterns so expo/src/Expo.ts goes through Babel\n                #   (default pattern excludes all node_modules → raw Flow types → SyntaxError).\n                if [ -f metro.config.js ] && [ -d node_modules/expo ] &&                    ( grep -q \'expo/metro-config\\|@expo/metro-config\' metro.config.js 2>/dev/null ||                      ! grep -q \'transformIgnorePatterns\' metro.config.js 2>/dev/null ); then                     cp metro.config.js metro.config.orig.js &&                     printf \'const c=require("./metro.config.orig.js");const r=Object.assign({},c);if(r.serializer){r.serializer=Object.assign({},r.serializer);delete r.serializer.customSerializer;}r.transformer=Object.assign({},r.transformer||{});if(!r.transformer.transformIgnorePatterns){r.transformer.transformIgnorePatterns=["node_modules/(?!(react-native|@react-native|expo|@expo|@unimodules|react-clone-referenced-element|@react-navigation|native-base)/)"];}module.exports=r;\\n\' > metro.config.js;                 fi && \n                # ---- stub missing metro watchFolders paths ----\n                mkdir -p /src 2>/dev/null || true && \n                # ---- fix babel configs that use react-native-builder-bob ----\n                # builder-bob is a library-dev tool; its getConfig() throws "Couldn\'t determine the source\n                # directory" when built outside the library\'s own workspace. Replace with a standard preset.\n                if grep -ql \'react-native-builder-bob\' babel.config.js babel.config.json .babelrc .babelrc.js 2>/dev/null; then                     if [ -d node_modules/babel-preset-expo ]; then                         printf \'module.exports=function(api){api.cache(true);return{presets:["babel-preset-expo"]};};\n\' > babel.config.js;                     elif [ -d node_modules/@react-native/babel-preset ]; then                         printf \'module.exports={presets:["module:@react-native/babel-preset"]};\' > babel.config.js;                     else                         printf \'module.exports={presets:["module:metro-react-native-babel-preset"]};\' > babel.config.js;                     fi;                 fi && \n                # ---- ensure TypeScript babel support (fixes \'interface\' SyntaxError in metro bundling) ----\n                if [ -d node_modules/babel-preset-expo ]; then                     grep -ql "expo\\|typescript" babel.config.js .babelrc .babelrc.js babel.config.json 2>/dev/null ||                     printf \'module.exports=function(api){api.cache(true);return{presets:["babel-preset-expo"]};};\n\' > babel.config.js;                 fi && \n                # ---- stub missing-asset-registry-path (Metro virtual module not resolved in release) ----\n                # Metro normally aliases this to @react-native/assets-registry/registry at bundle time.\n                # When that alias is missing, any PNG asset in node_modules triggers "Unable to resolve module".\n                if [ ! -d node_modules/missing-asset-registry-path ]; then                     mkdir -p node_modules/missing-asset-registry-path &&                     if [ -f node_modules/@react-native/assets-registry/registry.js ]; then                         printf \'module.exports=require("@react-native/assets-registry/registry");\' > node_modules/missing-asset-registry-path/index.js;                     else                         printf \'module.exports={registerAsset:function(){return 0;},getAssetByID:function(){return null;}};\' > node_modules/missing-asset-registry-path/index.js;                     fi;                 fi && \n                # ---- stub @react-native-masked-view/masked-view if missing ----\n                # Required by @react-navigation/elements but often not installed as a direct dependency.\n                if [ ! -d node_modules/@react-native-masked-view/masked-view ]; then                     mkdir -p node_modules/@react-native-masked-view/masked-view &&                     printf \'{"name":"@react-native-masked-view/masked-view","version":"0.1.11","main":"index.js"}\' > node_modules/@react-native-masked-view/masked-view/package.json &&                     printf \'const React=require("react");const {View}=require("react-native");function MaskedView(p){return React.createElement(View,p.style?{style:p.style}:{},p.children);}module.exports=MaskedView;module.exports.default=MaskedView;\' > node_modules/@react-native-masked-view/masked-view/index.js;                 fi && \n                export PATH="/app/node_modules/.bin:$PATH" &&                 cd android && \n                chmod +x gradlew && \n                # ---- inject fallback repositories via Gradle init script ----\n                mkdir -p $GRADLE_USER_HOME/init.d &&                 echo \'gradle.beforeProject {project ->\' > $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  project.buildscript.repositories {\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://maven.google.com"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://repo1.maven.org/maven2"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://plugins.gradle.org/m2/"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://jitpack.io"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  }\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  project.repositories {\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://maven.google.com"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://repo1.maven.org/maven2"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://plugins.gradle.org/m2/"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://jitpack.io"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  }\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'}\' >> $GRADLE_USER_HOME/init.d/repos.gradle && \n                # ---- patch settings.gradle to use local react-native CLI (avoids npx failures) ----\n                sed -i \'s/autolinkLibrariesWithCommand()/autolinkLibrariesWithCommand("node node_modules\\/.bin\\/react-native config")/\' settings.gradle 2>/dev/null || true && \n                # ---- disable Sentry source map upload (no credentials in CI) ----\n                export SENTRY_DISABLE_AUTO_UPLOAD=true &&                 echo "sentryUploadEnabled=false" >> gradle.properties 2>/dev/null || true && \n                # ---- enable ABI splits ----\n                if grep -q \'splits\' app/build.gradle 2>/dev/null; then                     sed -i \'s/enable false/enable true/\' app/build.gradle || true;                 else                     sed -i \'/^android[[:space:]]*{/a\\    splits {\\n        abi {\\n            reset()\\n            enable true\\n            universalApk false\\n            include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"\\n        }\\n    }\' app/build.gradle || true;                 fi && \n                # ---- enable R8 ----\n                sed -i \'s/enableProguardInReleaseBuilds = false/enableProguardInReleaseBuilds = true/\' app/build.gradle || true && \n                # ---- sign release with debug key ----\n                sed -i \'/buildTypes/,/}/s/release {/release {\n            signingConfig signingConfigs.debug/\' app/build.gradle || true && \n                # ---- pre-resolve AAR transforms so CMake finds prefab paths ----\n                ./gradlew :app:dependencies --configuration releaseCompileClasspath --no-daemon > /dev/null 2>&1 || true && \n                # ---- build release apk ----\n                ./gradlew assembleRelease --no-daemon || exit 1 &&                     \n                APK_PATH="app/build/outputs/apk/release"\n\n                if ! ls $APK_PATH/*.apk 1> /dev/null 2>&1; then\n                    echo "ERROR: APK not generated"\n                    exit 1\n                fi\n\n                # ---- copy output ----\n                cp app/build/outputs/apk/release/*.apk /output/r8/\n\n                # ---- copy TPL metadata ----\n                [ -f ../package.json ] && cp ../package.json /output/r8/ || true\n                [ -f ../package-lock.json ] && cp ../package-lock.json /output/r8/ || true\n                [ -f ../yarn.lock ] && cp ../yarn.lock /output/r8/ || true\n                [ -f ../pnpm-lock.yaml ] && cp ../pnpm-lock.yaml /output/r8/ || true\n                [ -f app/build.gradle ] && cp app/build.gradle /output/r8/android-build.gradle || true\n                [ -f build.gradle ] && cp build.gradle /output/r8/root-build.gradle || true\n                [ -f build.gradle.kts ] && cp build.gradle.kts /output/r8/root-build.gradle.kts || true\n                [ -f settings.gradle ] && cp settings.gradle /output/r8/ || true\n                [ -f settings.gradle.kts ] && cp settings.gradle.kts /output/r8/ || true\n                [ -f gradle/libs.versions.toml ] && cp gradle/libs.versions.toml /output/r8/ || true\n                find . -name "*.gradle" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true\n                find . -name "*.gradle.kts" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true\n                mkdir -p /output/r8/libs\n                find . -name "*.jar" -not -name "gradle-wrapper.jar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n                find . -name "*.aar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n                find . -name "*.so" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n                    ']' returned non-zero exit status 1.
Build failed with Node 22 and jdk version 17 with the following error: Command '['docker', 'run', '--rm', '-v', '/home/ubuntu/storage/extracted/Sureshkumar041-iicab/iicab-c3398530d3984efd132546be941a0165a3ac6566:/source:ro', '-v', '/home/ubuntu/BachelorsThesis/scripts/RN/output/Sureshkumar041-iicab:/output', '-v', '/home/ubuntu/.npm:/root/.npm', 'react-android:22-jdk17', 'bash', '-c', '\n                set -e\n\n                cp -r /source/. /app &&                 cd /app && \n                # ---- install deps (yarn or npm) ----\n                if [ -f yarn.lock ]; then\n                    yarn install;\n                else\n                    npm install --ignore-scripts;\n                fi && \n                # ---- stub missing parent package.json (monorepo metro configs) ----\n                [ ! -f ../package.json ] && cp package.json ../package.json 2>/dev/null || true && \n                # ---- patch toReversed (Node <20 compat) ----\n                find node_modules -name "loadConfig.js" -path "*/metro-config/*" -exec sed -i \'s/\\.toReversed()/.slice().reverse()/g\' {} \\; 2>/dev/null || true && \n                # ---- patch missing expo/AppEntry ----\n                if grep -q \'"main".*expo/AppEntry\' package.json 2>/dev/null &&                    [ ! -f node_modules/expo/AppEntry.js ] && [ ! -f node_modules/expo/AppEntry.ts ]; then                     node -e "const fs=require(\'fs\'); const p=JSON.parse(fs.readFileSync(\'package.json\',\'utf8\')); if(fs.existsSync(\'index.js\')){p.main=\'index.js\'; fs.writeFileSync(\'package.json\',JSON.stringify(p,null,2));}" 2>/dev/null || true;                 fi && \n                # ---- patch broken metro config (ESM-only, null-returning, or monorepo-only) ----\n                # NOTE: do NOT replace configs that merely use expo/metro-config — those carry\n                # Expo-specific resolver paths (watchFolders, extraNodeModules) needed for\n                # packages like @react-native-masked-view/masked-view to resolve.\n                if grep -q \'react-native-monorepo-config\' metro.config.js 2>/dev/null ||                    ! node -e "const c=require(\'./metro.config.js\'); if(!c||typeof c!==\'object\') process.exit(1);" 2>/dev/null; then                     if [ -d node_modules/@react-native/metro-config ]; then                         printf \'const {getDefaultConfig, mergeConfig} = require("@react-native/metro-config");\nmodule.exports = mergeConfig(getDefaultConfig(__dirname), {});\n\' > metro.config.js;                     else                         printf \'const {getDefaultConfig} = require("metro-config");\nmodule.exports = getDefaultConfig(__dirname);\n\' > metro.config.js;                     fi;                 fi && \n                # ---- stub missing google-services.json (Firebase/Expo prebuild) ----\n                if [ ! -f google-services.json ]; then                     python3 -c "import json; open(\'google-services.json\',\'w\').write(json.dumps({\'project_info\':{\'project_number\':\'000000000000\',\'project_id\':\'stub\',\'storage_bucket\':\'stub.appspot.com\'},\'client\':[{\'client_info\':{\'mobilesdk_app_id\':\'1:000000000000:android:0000000000000000\',\'android_client_info\':{\'package_name\':\'com.stub\'}},\'oauth_client\':[],\'api_key\':[{\'current_key\':\'stub\'}],\'services\':{\'appinvite_service\':{\'other_platform_oauth_client\':[]}}}],\'configuration_version\':\'1\'}))" 2>/dev/null || true;                 fi && \n                # ---- detect expo ----\n                if grep -q \'"expo"\' package.json && [ ! -d android ]; then\n                    echo "Expo project detected";\n                    CI=1 npx --yes expo prebuild --platform android\n                fi && \n                # ---- fix expo/metro-config: serializer + Flow transformIgnorePatterns ----\n                # Runs AFTER prebuild because prebuild generates metro.config.js for managed-workflow\n                # projects — patching before prebuild would be overwritten by the generated file.\n                # Fix 1: remove customSerializer that returns JS string instead of JSON\n                #   ("var __BUND..." → "Serializer did not return expected format").\n                # Fix 2: add transformIgnorePatterns so expo/src/Expo.ts goes through Babel\n                #   (default pattern excludes all node_modules → raw Flow types → SyntaxError).\n                if [ -f metro.config.js ] && [ -d node_modules/expo ] &&                    ( grep -q \'expo/metro-config\\|@expo/metro-config\' metro.config.js 2>/dev/null ||                      ! grep -q \'transformIgnorePatterns\' metro.config.js 2>/dev/null ); then                     cp metro.config.js metro.config.orig.js &&                     printf \'const c=require("./metro.config.orig.js");const r=Object.assign({},c);if(r.serializer){r.serializer=Object.assign({},r.serializer);delete r.serializer.customSerializer;}r.transformer=Object.assign({},r.transformer||{});if(!r.transformer.transformIgnorePatterns){r.transformer.transformIgnorePatterns=["node_modules/(?!(react-native|@react-native|expo|@expo|@unimodules|react-clone-referenced-element|@react-navigation|native-base)/)"];}module.exports=r;\\n\' > metro.config.js;                 fi && \n                # ---- stub missing metro watchFolders paths ----\n                mkdir -p /src 2>/dev/null || true && \n                # ---- fix babel configs that use react-native-builder-bob ----\n                # builder-bob is a library-dev tool; its getConfig() throws "Couldn\'t determine the source\n                # directory" when built outside the library\'s own workspace. Replace with a standard preset.\n                if grep -ql \'react-native-builder-bob\' babel.config.js babel.config.json .babelrc .babelrc.js 2>/dev/null; then                     if [ -d node_modules/babel-preset-expo ]; then                         printf \'module.exports=function(api){api.cache(true);return{presets:["babel-preset-expo"]};};\n\' > babel.config.js;                     elif [ -d node_modules/@react-native/babel-preset ]; then                         printf \'module.exports={presets:["module:@react-native/babel-preset"]};\' > babel.config.js;                     else                         printf \'module.exports={presets:["module:metro-react-native-babel-preset"]};\' > babel.config.js;                     fi;                 fi && \n                # ---- ensure TypeScript babel support (fixes \'interface\' SyntaxError in metro bundling) ----\n                if [ -d node_modules/babel-preset-expo ]; then                     grep -ql "expo\\|typescript" babel.config.js .babelrc .babelrc.js babel.config.json 2>/dev/null ||                     printf \'module.exports=function(api){api.cache(true);return{presets:["babel-preset-expo"]};};\n\' > babel.config.js;                 fi && \n                # ---- stub missing-asset-registry-path (Metro virtual module not resolved in release) ----\n                # Metro normally aliases this to @react-native/assets-registry/registry at bundle time.\n                # When that alias is missing, any PNG asset in node_modules triggers "Unable to resolve module".\n                if [ ! -d node_modules/missing-asset-registry-path ]; then                     mkdir -p node_modules/missing-asset-registry-path &&                     if [ -f node_modules/@react-native/assets-registry/registry.js ]; then                         printf \'module.exports=require("@react-native/assets-registry/registry");\' > node_modules/missing-asset-registry-path/index.js;                     else                         printf \'module.exports={registerAsset:function(){return 0;},getAssetByID:function(){return null;}};\' > node_modules/missing-asset-registry-path/index.js;                     fi;                 fi && \n                # ---- stub @react-native-masked-view/masked-view if missing ----\n                # Required by @react-navigation/elements but often not installed as a direct dependency.\n                if [ ! -d node_modules/@react-native-masked-view/masked-view ]; then                     mkdir -p node_modules/@react-native-masked-view/masked-view &&                     printf \'{"name":"@react-native-masked-view/masked-view","version":"0.1.11","main":"index.js"}\' > node_modules/@react-native-masked-view/masked-view/package.json &&                     printf \'const React=require("react");const {View}=require("react-native");function MaskedView(p){return React.createElement(View,p.style?{style:p.style}:{},p.children);}module.exports=MaskedView;module.exports.default=MaskedView;\' > node_modules/@react-native-masked-view/masked-view/index.js;                 fi && \n                export PATH="/app/node_modules/.bin:$PATH" &&                 cd android && \n                chmod +x gradlew && \n                # ---- inject fallback repositories via Gradle init script ----\n                mkdir -p $GRADLE_USER_HOME/init.d &&                 echo \'gradle.beforeProject {project ->\' > $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  project.buildscript.repositories {\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://maven.google.com"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://repo1.maven.org/maven2"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://plugins.gradle.org/m2/"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://jitpack.io"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  }\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  project.repositories {\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://maven.google.com"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://repo1.maven.org/maven2"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://plugins.gradle.org/m2/"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'    maven {url "https://jitpack.io"}\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'  }\' >> $GRADLE_USER_HOME/init.d/repos.gradle &&                 echo \'}\' >> $GRADLE_USER_HOME/init.d/repos.gradle && \n                # ---- patch settings.gradle to use local react-native CLI (avoids npx failures) ----\n                sed -i \'s/autolinkLibrariesWithCommand()/autolinkLibrariesWithCommand("node node_modules\\/.bin\\/react-native config")/\' settings.gradle 2>/dev/null || true && \n                # ---- disable Sentry source map upload (no credentials in CI) ----\n                export SENTRY_DISABLE_AUTO_UPLOAD=true &&                 echo "sentryUploadEnabled=false" >> gradle.properties 2>/dev/null || true && \n                # ---- enable ABI splits ----\n                if grep -q \'splits\' app/build.gradle 2>/dev/null; then                     sed -i \'s/enable false/enable true/\' app/build.gradle || true;                 else                     sed -i \'/^android[[:space:]]*{/a\\    splits {\\n        abi {\\n            reset()\\n            enable true\\n            universalApk false\\n            include "armeabi-v7a", "arm64-v8a", "x86", "x86_64"\\n        }\\n    }\' app/build.gradle || true;                 fi && \n                # ---- enable R8 ----\n                sed -i \'s/enableProguardInReleaseBuilds = false/enableProguardInReleaseBuilds = true/\' app/build.gradle || true && \n                # ---- sign release with debug key ----\n                sed -i \'/buildTypes/,/}/s/release {/release {\n            signingConfig signingConfigs.debug/\' app/build.gradle || true && \n                # ---- pre-resolve AAR transforms so CMake finds prefab paths ----\n                ./gradlew :app:dependencies --configuration releaseCompileClasspath --no-daemon > /dev/null 2>&1 || true && \n                # ---- build release apk ----\n                ./gradlew assembleRelease --no-daemon || exit 1 &&                     \n                APK_PATH="app/build/outputs/apk/release"\n\n                if ! ls $APK_PATH/*.apk 1> /dev/null 2>&1; then\n                    echo "ERROR: APK not generated"\n                    exit 1\n                fi\n\n                # ---- copy output ----\n                cp app/build/outputs/apk/release/*.apk /output/r8/\n\n                # ---- copy TPL metadata ----\n                [ -f ../package.json ] && cp ../package.json /output/r8/ || true\n                [ -f ../package-lock.json ] && cp ../package-lock.json /output/r8/ || true\n                [ -f ../yarn.lock ] && cp ../yarn.lock /output/r8/ || true\n                [ -f ../pnpm-lock.yaml ] && cp ../pnpm-lock.yaml /output/r8/ || true\n                [ -f app/build.gradle ] && cp app/build.gradle /output/r8/android-build.gradle || true\n                [ -f build.gradle ] && cp build.gradle /output/r8/root-build.gradle || true\n                [ -f build.gradle.kts ] && cp build.gradle.kts /output/r8/root-build.gradle.kts || true\n                [ -f settings.gradle ] && cp settings.gradle /output/r8/ || true\n                [ -f settings.gradle.kts ] && cp settings.gradle.kts /output/r8/ || true\n                [ -f gradle/libs.versions.toml ] && cp gradle/libs.versions.toml /output/r8/ || true\n                find . -name "*.gradle" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true\n                find . -name "*.gradle.kts" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/ 2>/dev/null; done || true\n                mkdir -p /output/r8/libs\n                find . -name "*.jar" -not -name "gradle-wrapper.jar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n                find . -name "*.aar" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n                find . -name "*.so" 2>/dev/null | grep -v "/build/" | grep -v "/.gradle/" | grep -v "/node_modules/" | while read f; do cp "$f" /output/r8/libs/ 2>/dev/null; done || true\n                    ']' returned non-zero exit status 1.
