
> echo Attempting build for bilaleren-mui-tabs with Node 16 and jdk 17
Attempting build for bilaleren-mui-tabs 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 bilaleren-mui-tabs with Node 18 and jdk 17
Attempting build for bilaleren-mui-tabs with Node 18 and jdk 17

> docker run --rm -v /home/ubuntu/storage/extracted/bilaleren-mui-tabs/mui-tabs-6b7388ad1ef86adf1dcbf3aa71a874b25bcc43cd/examples/native-example:/source:ro -v /home/ubuntu/BachelorsThesis/scripts/RN/output/bilaleren-mui-tabs:/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
                    
yarn install v1.22.22
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
[4/5] Linking dependencies...
[5/5] Building fresh packages...
Done in 33.54s.
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 :app
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:externalNativeBuildCleanDebug
> Task :app:externalNativeBuildCleanRelease
> Task :app:clean
> Task :react-native-pager-view:clean UP-TO-DATE
> Task :react-native-safe-area-context:clean UP-TO-DATE
> Task :react-native-vector-icons:clean UP-TO-DATE

BUILD SUCCESSFUL in 4m 8s
11 actionable tasks: 8 executed, 3 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
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.
> Task :app:buildCodegenCLI SKIPPED
> Task :app:generateCodegenSchemaFromJavaScript SKIPPED
> Task :app:generateCodegenArtifactsFromSchema SKIPPED
> Task :app:generateNewArchitectureFiles
> Task :app:generatePackageList
> Task :app:preBuild
> Task :app:preDebugBuild
> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE
> Task :react-native-pager-view:buildCodegenCLI SKIPPED
> Task :react-native-pager-view:generateCodegenSchemaFromJavaScript
> Task :react-native-pager-view:generateCodegenArtifactsFromSchema
> Task :react-native-pager-view:preBuild
> Task :react-native-pager-view:preDebugBuild
> Task :react-native-pager-view:compileDebugAidl NO-SOURCE
> Task :react-native-safe-area-context:buildCodegenCLI SKIPPED
> Task :react-native-safe-area-context:generateCodegenSchemaFromJavaScript
> Task :react-native-safe-area-context:generateCodegenArtifactsFromSchema
> Task :react-native-safe-area-context:preBuild
> Task :react-native-safe-area-context:preDebugBuild
> Task :react-native-safe-area-context:compileDebugAidl NO-SOURCE
> Task :react-native-vector-icons:buildCodegenCLI SKIPPED
> Task :react-native-vector-icons:generateCodegenSchemaFromJavaScript
> Task :react-native-vector-icons:generateCodegenArtifactsFromSchema
> Task :react-native-vector-icons:preBuild
> Task :react-native-vector-icons:preDebugBuild
> Task :react-native-vector-icons:compileDebugAidl NO-SOURCE
> Task :app:compileDebugAidl NO-SOURCE
> Task :react-native-pager-view:packageDebugRenderscript NO-SOURCE
> Task :react-native-safe-area-context: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-pager-view:writeDebugAarMetadata
> Task :react-native-safe-area-context:writeDebugAarMetadata
> Task :react-native-vector-icons:writeDebugAarMetadata
> Task :app:generateDebugResValues
> Task :react-native-pager-view:compileDebugRenderscript NO-SOURCE
> Task :react-native-pager-view:generateDebugResValues
> Task :react-native-pager-view:generateDebugResources
> Task :app:checkDebugAarMetadata
> Task :react-native-pager-view: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-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-pager-view:extractDeepLinksDebug
> Task :react-native-safe-area-context: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-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-pager-view:processDebugManifest
package="com.reactnativepagerview" found in source AndroidManifest.xml: /app/node_modules/react-native-pager-view/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-pager-view:compileDebugLibraryResources
> Task :app:processDebugMainManifest
> Task :app:processDebugManifest
> Task :app:processDebugManifestForPackage
> Task :react-native-safe-area-context:compileDebugLibraryResources
> Task :react-native-vector-icons:compileDebugLibraryResources
> Task :react-native-pager-view:generateDebugBuildConfig
> Task :react-native-pager-view:javaPreCompileDebug
> Task :react-native-safe-area-context:generateDebugBuildConfig
> Task :react-native-safe-area-context:javaPreCompileDebug
> Task :react-native-vector-icons:generateDebugBuildConfig
> Task :react-native-vector-icons:javaPreCompileDebug
> Task :app:mergeDebugShaders
> Task :app:compileDebugShaders NO-SOURCE
> Task :react-native-vector-icons:parseDebugLocalResources
> Task :react-native-pager-view:parseDebugLocalResources
> Task :react-native-safe-area-context:parseDebugLocalResources
> Task :app:copyReactNativeVectorIconFonts
> Task :app:generateDebugAssets
> Task :react-native-pager-view:mergeDebugShaders
> Task :react-native-pager-view:compileDebugShaders NO-SOURCE
> Task :react-native-pager-view:generateDebugAssets UP-TO-DATE
> Task :react-native-pager-view: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-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 :react-native-vector-icons:generateDebugRFile
> Task :react-native-safe-area-context:generateDebugRFile
> Task :react-native-pager-view:generateDebugRFile
> Task :app:mergeDebugAssets
> Task :app:processDebugResources

> Task :react-native-pager-view: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 :react-native-vector-icons:compileDebugJavaWithJavac
Note: /app/node_modules/react-native-vector-icons/android/src/newarch/java/com/oblador/vectoricons/VectorIconsModule.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

> Task :react-native-safe-area-context: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:processDebugJavaRes NO-SOURCE
> Task :react-native-pager-view:processDebugJavaRes NO-SOURCE
> Task :react-native-safe-area-context:processDebugJavaRes NO-SOURCE
> Task :react-native-vector-icons:processDebugJavaRes NO-SOURCE
> Task :react-native-vector-icons:bundleLibResDebug NO-SOURCE
> Task :react-native-vector-icons:bundleLibCompileToJarDebug
> Task :app:compressDebugAssets
> Task :app:checkDebugDuplicateClasses
> Task :app:desugarDebugFileDependencies

> Task :react-native-pager-view:compileDebugKotlin
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:6:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:21:82 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:27:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:28:25 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:6:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:15:89 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:20:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:21:25 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:6:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:15:69 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:24:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:25:25 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java

> Task :react-native-safe-area-context:compileDebugKotlin
w: file:///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-pager-view:compileDebugJavaWithJavac
> Task :react-native-pager-view:bundleLibCompileToJarDebug
> Task :react-native-safe-area-context:compileDebugJavaWithJavac
> Task :react-native-safe-area-context:bundleLibCompileToJarDebug
> Task :react-native-pager-view:bundleLibResDebug
> Task :app:compileDebugJavaWithJavac
> Task :react-native-safe-area-context:bundleLibResDebug
> Task :react-native-pager-view:bundleLibRuntimeToJarDebug
> Task :react-native-safe-area-context:bundleLibRuntimeToJarDebug
> Task :react-native-vector-icons:bundleLibRuntimeToJarDebug
> Task :app:mergeDebugJavaResource
> Task :app:configureCMakeDebug[arm64-v8a]
> Task :app:mergeLibDexDebug
> Task :app:dexBuilderDebug
> Task :app:mergeProjectDexDebug

> Task :app:buildCMakeDebug[arm64-v8a]
C/C++: ninja: Entering directory `/app/android/app/.cxx/Debug/3d435a42/arm64-v8a'
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.cpp:1:
C/C++: /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.h:19:7: warning: designated initializers are a C++20 extension [-Wc++20-designator]
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.cpp:1:
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.h:6:
C/C++: /app/node_modules/react-native-safe-area-context/android/src/main/jni/../../../../common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.h:19:7: warning: designated initializers are a C++20 extension [-Wc++20-designator]

> Task :app:configureCMakeDebug[armeabi-v7a]

> Task :app:buildCMakeDebug[armeabi-v7a]
C/C++: ninja: Entering directory `/app/android/app/.cxx/Debug/3d435a42/armeabi-v7a'
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.cpp:1:
C/C++: /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.h:19:7: warning: designated initializers are a C++20 extension [-Wc++20-designator]
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.cpp:1:
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.h:6:
C/C++: /app/node_modules/react-native-safe-area-context/android/src/main/jni/../../../../common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.h:19:7: warning: designated initializers are a C++20 extension [-Wc++20-designator]

> Task :app:configureCMakeDebug[x86]

> Task :app:buildCMakeDebug[x86]
C/C++: ninja: Entering directory `/app/android/app/.cxx/Debug/3d435a42/x86'
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.cpp:1:
C/C++: /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.h:19:7: warning: designated initializers are a C++20 extension [-Wc++20-designator]
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.cpp:1:
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.h:6:
C/C++: /app/node_modules/react-native-safe-area-context/android/src/main/jni/../../../../common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.h:19:7: warning: designated initializers are a C++20 extension [-Wc++20-designator]

> Task :app:configureCMakeDebug[x86_64]

> Task :app:buildCMakeDebug[x86_64]
C/C++: ninja: Entering directory `/app/android/app/.cxx/Debug/3d435a42/x86_64'
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.cpp:1:
C/C++: /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.h:19:7: warning: designated initializers are a C++20 extension [-Wc++20-designator]
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.cpp:1:
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.h:6:
C/C++: /app/node_modules/react-native-safe-area-context/android/src/main/jni/../../../../common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.h:19:7: warning: designated initializers are a C++20 extension [-Wc++20-designator]

> Task :react-native-pager-view:mergeDebugJniLibFolders
> Task :react-native-pager-view:mergeDebugNativeLibs NO-SOURCE
> Task :react-native-pager-view:copyDebugJniLibsProjectOnly
> 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-vector-icons:mergeDebugJniLibFolders
> Task :react-native-vector-icons:mergeDebugNativeLibs NO-SOURCE
> Task :react-native-vector-icons:copyDebugJniLibsProjectOnly
> Task :app:mergeDebugJniLibFolders
> Task :app:externalNativeBuildDebug
> Task :app:validateSigningDebug
> Task :app:writeDebugAppMetadata
> Task :app:writeDebugSigningConfigVersions
> Task :react-native-pager-view:stripDebugDebugSymbols NO-SOURCE
> Task :react-native-pager-view:copyDebugJniLibsProjectAndLocalJars
> Task :app:mergeDebugNativeLibs
> Task :react-native-pager-view:extractDebugAnnotations
> Task :react-native-pager-view:extractDeepLinksForAarDebug
> Task :react-native-pager-view:mergeDebugGeneratedProguardFiles
> Task :react-native-pager-view:mergeDebugConsumerProguardFiles
> Task :react-native-pager-view:prepareDebugArtProfile
> Task :react-native-pager-view:prepareLintJarForPublish
> Task :react-native-safe-area-context:stripDebugDebugSymbols NO-SOURCE
> Task :react-native-safe-area-context:copyDebugJniLibsProjectAndLocalJars
> Task :react-native-pager-view:mergeDebugJavaResource
> Task :react-native-safe-area-context:extractDebugAnnotations
> Task :react-native-pager-view:syncDebugLibJars
> Task :react-native-pager-view:bundleDebugAar
> Task :react-native-pager-view:assembleDebug
> 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-vector-icons:stripDebugDebugSymbols NO-SOURCE
> Task :react-native-vector-icons:copyDebugJniLibsProjectAndLocalJars
> Task :react-native-safe-area-context:mergeDebugJavaResource
> 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-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

BUILD SUCCESSFUL in 3m 57s
139 actionable tasks: 134 executed, 5 up-to-date

> docker run --rm -v /home/ubuntu/storage/extracted/bilaleren-mui-tabs/mui-tabs-6b7388ad1ef86adf1dcbf3aa71a874b25bcc43cd/examples/native-example:/source:ro -v /home/ubuntu/BachelorsThesis/scripts/RN/output/bilaleren-mui-tabs:/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
                    
yarn install v1.22.22
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
[4/5] Linking dependencies...
[5/5] Building fresh packages...
Done in 33.31s.
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
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.
> Task :react-native-pager-view:buildCodegenCLI SKIPPED
> Task :react-native-pager-view:generateCodegenSchemaFromJavaScript
> Task :react-native-pager-view:generateCodegenArtifactsFromSchema
> Task :react-native-pager-view:preBuild
> Task :react-native-pager-view:preReleaseBuild
> Task :react-native-pager-view:compileReleaseAidl NO-SOURCE
> Task :react-native-pager-view:mergeReleaseJniLibFolders
> Task :react-native-pager-view:mergeReleaseNativeLibs NO-SOURCE
> Task :react-native-pager-view:stripReleaseDebugSymbols NO-SOURCE
> Task :react-native-pager-view:compileReleaseRenderscript NO-SOURCE
> Task :react-native-pager-view:copyReleaseJniLibsProjectAndLocalJars
> Task :react-native-pager-view:generateReleaseResValues
> Task :react-native-pager-view:extractDeepLinksForAarRelease
> Task :react-native-pager-view:generateReleaseBuildConfig
> Task :react-native-pager-view:generateReleaseResources
> Task :react-native-pager-view:packageReleaseResources
> Task :react-native-pager-view:javaPreCompileRelease
> Task :react-native-pager-view:mergeReleaseShaders
> Task :react-native-pager-view:compileReleaseShaders NO-SOURCE
> Task :react-native-pager-view:generateReleaseAssets UP-TO-DATE
> Task :react-native-pager-view:packageReleaseAssets
> Task :react-native-pager-view:packageReleaseRenderscript NO-SOURCE
> Task :react-native-pager-view:prepareReleaseArtProfile
> Task :react-native-pager-view:prepareLintJarForPublish
> Task :react-native-pager-view:processReleaseJavaRes NO-SOURCE
> Task :react-native-safe-area-context:buildCodegenCLI SKIPPED
> Task :react-native-pager-view:writeReleaseAarMetadata
> Task :react-native-pager-view:parseReleaseLocalResources

> Task :react-native-pager-view:processReleaseManifest
package="com.reactnativepagerview" found in source AndroidManifest.xml: /app/node_modules/react-native-pager-view/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:generateCodegenSchemaFromJavaScript
> Task :react-native-pager-view:generateReleaseRFile
> Task :react-native-safe-area-context:generateCodegenArtifactsFromSchema

> Task :react-native-pager-view:compileReleaseKotlin
'compileReleaseJavaWithJavac' task (current target is 11) and 'compileReleaseKotlin' 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 :react-native-safe-area-context:preBuild
> Task :react-native-safe-area-context:preReleaseBuild
> Task :react-native-safe-area-context:compileReleaseAidl NO-SOURCE
> Task :react-native-safe-area-context:mergeReleaseJniLibFolders
> Task :react-native-safe-area-context:mergeReleaseNativeLibs NO-SOURCE
> Task :react-native-safe-area-context:stripReleaseDebugSymbols NO-SOURCE
> Task :react-native-safe-area-context:copyReleaseJniLibsProjectAndLocalJars
> Task :react-native-safe-area-context:compileReleaseRenderscript NO-SOURCE
> Task :react-native-safe-area-context:generateReleaseResValues
> Task :react-native-safe-area-context:extractDeepLinksForAarRelease
> Task :react-native-safe-area-context:generateReleaseBuildConfig
> Task :react-native-safe-area-context:generateReleaseResources
> Task :react-native-safe-area-context:packageReleaseResources
> Task :react-native-safe-area-context:parseReleaseLocalResources

> Task :react-native-safe-area-context:processReleaseManifest
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-safe-area-context:javaPreCompileRelease
> Task :react-native-safe-area-context:mergeReleaseShaders
> Task :react-native-safe-area-context:compileReleaseShaders NO-SOURCE
> Task :react-native-safe-area-context:generateReleaseAssets UP-TO-DATE
> Task :react-native-safe-area-context:packageReleaseAssets
> Task :react-native-safe-area-context:generateReleaseRFile
> Task :react-native-safe-area-context:packageReleaseRenderscript NO-SOURCE
> Task :react-native-safe-area-context:prepareLintJarForPublish
> Task :react-native-safe-area-context:prepareReleaseArtProfile
> Task :react-native-safe-area-context:processReleaseJavaRes NO-SOURCE
> Task :react-native-safe-area-context:writeReleaseAarMetadata
> Task :react-native-vector-icons:buildCodegenCLI SKIPPED
> Task :react-native-vector-icons:generateCodegenSchemaFromJavaScript
> Task :react-native-vector-icons:generateCodegenArtifactsFromSchema
> Task :react-native-vector-icons:preBuild
> Task :react-native-vector-icons:preReleaseBuild
> Task :react-native-vector-icons:compileReleaseAidl NO-SOURCE
> Task :react-native-vector-icons:mergeReleaseJniLibFolders
> Task :react-native-vector-icons:mergeReleaseNativeLibs NO-SOURCE
> Task :react-native-vector-icons:stripReleaseDebugSymbols NO-SOURCE
> Task :react-native-vector-icons:compileReleaseRenderscript NO-SOURCE
> Task :react-native-vector-icons:copyReleaseJniLibsProjectAndLocalJars
> Task :react-native-vector-icons:generateReleaseResValues
> Task :react-native-vector-icons:extractDeepLinksForAarRelease
> Task :react-native-vector-icons:generateReleaseBuildConfig
> Task :react-native-vector-icons:generateReleaseResources
> Task :react-native-vector-icons:packageReleaseResources
> Task :react-native-vector-icons:parseReleaseLocalResources
> Task :react-native-vector-icons:javaPreCompileRelease
> Task :react-native-vector-icons:mergeReleaseShaders

> Task :react-native-vector-icons:processReleaseManifest
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-vector-icons:compileReleaseShaders NO-SOURCE
> Task :react-native-vector-icons:generateReleaseAssets UP-TO-DATE
> Task :react-native-vector-icons:packageReleaseAssets
> Task :react-native-vector-icons:packageReleaseRenderscript NO-SOURCE
> Task :react-native-vector-icons:prepareLintJarForPublish
> Task :react-native-vector-icons:prepareReleaseArtProfile
> Task :react-native-vector-icons:processReleaseJavaRes NO-SOURCE
> Task :app:buildCodegenCLI SKIPPED
> Task :app:generateCodegenSchemaFromJavaScript SKIPPED
> Task :app:generateCodegenArtifactsFromSchema SKIPPED
> Task :react-native-vector-icons:generateReleaseRFile
> Task :react-native-vector-icons:writeReleaseAarMetadata
> Task :app:generateNewArchitectureFiles
> Task :react-native-vector-icons:mergeReleaseJavaResource

> Task :react-native-safe-area-context:compileReleaseKotlin
'compileReleaseJavaWithJavac' task (current target is 11) and 'compileReleaseKotlin' 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 :react-native-vector-icons:extractReleaseAnnotations

> Task :react-native-pager-view:compileReleaseKotlin
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:6:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:21:82 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:27:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:28:25 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:6:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:15:89 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:20:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:21:25 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:6:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:15:69 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:24:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:25:25 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java

> Task :react-native-safe-area-context:compileReleaseKotlin
w: file:///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
Note: /app/node_modules/react-native-vector-icons/android/src/newarch/java/com/oblador/vectoricons/VectorIconsModule.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

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

> Task :react-native-pager-view:extractReleaseAnnotations
> Task :react-native-pager-view:compileReleaseJavaWithJavac
> Task :react-native-pager-view:mergeReleaseGeneratedProguardFiles
> Task :react-native-pager-view:mergeReleaseConsumerProguardFiles
> Task :react-native-safe-area-context:extractReleaseAnnotations
> Task :react-native-pager-view:mergeReleaseJavaResource
> Task :react-native-safe-area-context:compileReleaseJavaWithJavac
> Task :react-native-pager-view:syncReleaseLibJars
> Task :react-native-pager-view:bundleReleaseLocalLintAar
> Task :react-native-safe-area-context:mergeReleaseGeneratedProguardFiles
> Task :react-native-safe-area-context:mergeReleaseConsumerProguardFiles
> Task :react-native-vector-icons:mergeReleaseGeneratedProguardFiles
> Task :react-native-safe-area-context:mergeReleaseJavaResource
> Task :react-native-safe-area-context:syncReleaseLibJars
> Task :react-native-safe-area-context:bundleReleaseLocalLintAar
> Task :react-native-vector-icons:mergeReleaseConsumerProguardFiles
> Task :react-native-vector-icons:syncReleaseLibJars
> Task :react-native-vector-icons:bundleReleaseLocalLintAar
> Task :app:generatePackageList
> Task :app:preBuild
> Task :app:preReleaseBuild
> Task :app:compileReleaseAidl NO-SOURCE
> Task :app:compileReleaseRenderscript NO-SOURCE
> Task :app:generateReleaseBuildConfig
> Task :app:javaPreCompileRelease
> Task :app:checkReleaseAarMetadata

> Task :app:createBundleReleaseJsAndAssets
debug Reading Metro config from /app/metro.config.js
warning: the transform cache was reset.
                Welcome to Metro v0.76.9
              Fast - Scalable - Integrated


Error: ENOENT: no such file or directory, watch '/node_modules'
    at FSWatcher.<computed> (node:internal/fs/watchers:247:19)
    at Object.watch (node:fs:2418:34)
    at NodeWatcher._watchdir (/app/node_modules/metro-file-map/src/watchers/NodeWatcher.js:145:24)
    at new NodeWatcher (/app/node_modules/metro-file-map/src/watchers/NodeWatcher.js:43:10)
    at createWatcherBackend (/app/node_modules/metro-file-map/src/Watcher.js:189:23)
    at Array.map (<anonymous>)
    at Watcher.watch (/app/node_modules/metro-file-map/src/Watcher.js:217:27)
    at HasteMap._watch (/app/node_modules/metro-file-map/src/index.js:987:25)
    at /app/node_modules/metro-file-map/src/index.js:336:20
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
Failed to construct transformer:  Error: ENOENT: no such file or directory, watch '/node_modules'
    at FSWatcher.<computed> (node:internal/fs/watchers:247:19)
    at Object.watch (node:fs:2418:34)
    at NodeWatcher._watchdir (/app/node_modules/metro-file-map/src/watchers/NodeWatcher.js:145:24)
    at new NodeWatcher (/app/node_modules/metro-file-map/src/watchers/NodeWatcher.js:43:10)
    at createWatcherBackend (/app/node_modules/metro-file-map/src/Watcher.js:189:23)
    at Array.map (<anonymous>)
    at Watcher.watch (/app/node_modules/metro-file-map/src/Watcher.js:217:27)
    at HasteMap._watch (/app/node_modules/metro-file-map/src/index.js:987:25)
    at /app/node_modules/metro-file-map/src/index.js:336:20
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
  errno: -2,
  syscall: 'watch',
  code: 'ENOENT',
  path: '/node_modules',
  filename: '/node_modules'
}
error ENOENT: no such file or directory, watch '/node_modules'

> Task :app:createBundleReleaseJsAndAssets FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:createBundleReleaseJsAndAssets'.
> Process 'command 'node'' finished with non-zero exit value 1

* 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 2m 25s
85 actionable tasks: 80 executed, 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/bilaleren-mui-tabs/mui-tabs-6b7388ad1ef86adf1dcbf3aa71a874b25bcc43cd/examples/native-example:/source:ro', '-v', '/home/ubuntu/BachelorsThesis/scripts/RN/output/bilaleren-mui-tabs:/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/bilaleren-mui-tabs/mui-tabs-6b7388ad1ef86adf1dcbf3aa71a874b25bcc43cd/examples/native-example:/source:ro', '-v', '/home/ubuntu/BachelorsThesis/scripts/RN/output/bilaleren-mui-tabs:/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 bilaleren-mui-tabs with Node 20 and jdk 17
Attempting build for bilaleren-mui-tabs with Node 20 and jdk 17

> docker run --rm -v /home/ubuntu/storage/extracted/bilaleren-mui-tabs/mui-tabs-6b7388ad1ef86adf1dcbf3aa71a874b25bcc43cd/examples/native-example:/source:ro -v /home/ubuntu/BachelorsThesis/scripts/RN/output/bilaleren-mui-tabs:/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
                    
yarn install v1.22.22
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
[4/5] Linking dependencies...
[5/5] Building fresh packages...
Done in 33.51s.
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 :app
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:externalNativeBuildCleanDebug
> Task :app:externalNativeBuildCleanRelease
> Task :app:clean
> Task :react-native-pager-view:clean UP-TO-DATE
> Task :react-native-safe-area-context:clean UP-TO-DATE
> Task :react-native-vector-icons:clean UP-TO-DATE

BUILD SUCCESSFUL in 5m 22s
11 actionable tasks: 8 executed, 3 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
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.
> Task :app:buildCodegenCLI SKIPPED
> Task :app:generateCodegenSchemaFromJavaScript SKIPPED
> Task :app:generateCodegenArtifactsFromSchema SKIPPED
> Task :app:generateNewArchitectureFiles
> Task :app:generatePackageList
> Task :app:preBuild
> Task :app:preDebugBuild
> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE
> Task :react-native-pager-view:buildCodegenCLI SKIPPED
> Task :react-native-pager-view:generateCodegenSchemaFromJavaScript
> Task :react-native-pager-view:generateCodegenArtifactsFromSchema
> Task :react-native-pager-view:preBuild
> Task :react-native-pager-view:preDebugBuild
> Task :react-native-pager-view:compileDebugAidl NO-SOURCE
> Task :react-native-safe-area-context:buildCodegenCLI SKIPPED
> Task :react-native-safe-area-context:generateCodegenSchemaFromJavaScript
> Task :react-native-safe-area-context:generateCodegenArtifactsFromSchema
> Task :react-native-safe-area-context:preBuild
> Task :react-native-safe-area-context:preDebugBuild
> Task :react-native-safe-area-context:compileDebugAidl NO-SOURCE
> Task :react-native-vector-icons:buildCodegenCLI SKIPPED
> Task :react-native-vector-icons:generateCodegenSchemaFromJavaScript
> Task :react-native-vector-icons:generateCodegenArtifactsFromSchema
> Task :react-native-vector-icons:preBuild
> Task :react-native-vector-icons:preDebugBuild
> Task :react-native-vector-icons:compileDebugAidl NO-SOURCE
> Task :app:compileDebugAidl NO-SOURCE
> Task :react-native-pager-view:packageDebugRenderscript NO-SOURCE
> Task :react-native-safe-area-context: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-pager-view:writeDebugAarMetadata
> Task :react-native-safe-area-context:writeDebugAarMetadata
> Task :react-native-vector-icons:writeDebugAarMetadata
> Task :app:generateDebugResValues
> Task :react-native-pager-view:compileDebugRenderscript NO-SOURCE
> Task :react-native-pager-view:generateDebugResValues
> Task :react-native-pager-view:generateDebugResources
> Task :app:checkDebugAarMetadata
> Task :react-native-pager-view: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-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-pager-view:extractDeepLinksDebug
> Task :react-native-safe-area-context:extractDeepLinksDebug
> Task :react-native-vector-icons:extractDeepLinksDebug
> Task :app:mergeDebugResources

> 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-pager-view:processDebugManifest
package="com.reactnativepagerview" found in source AndroidManifest.xml: /app/node_modules/react-native-pager-view/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-pager-view:compileDebugLibraryResources
> Task :app:processDebugMainManifest
> Task :app:processDebugManifest
> Task :react-native-safe-area-context:compileDebugLibraryResources
> Task :react-native-vector-icons:compileDebugLibraryResources
> Task :react-native-pager-view:generateDebugBuildConfig
> Task :react-native-pager-view:javaPreCompileDebug
> Task :react-native-safe-area-context:generateDebugBuildConfig
> Task :react-native-safe-area-context:javaPreCompileDebug
> Task :react-native-vector-icons:generateDebugBuildConfig
> Task :react-native-vector-icons:javaPreCompileDebug
> Task :app:mergeDebugShaders
> Task :app:compileDebugShaders NO-SOURCE
> Task :react-native-safe-area-context:parseDebugLocalResources
> Task :react-native-vector-icons:parseDebugLocalResources
> Task :react-native-pager-view:parseDebugLocalResources
> Task :app:copyReactNativeVectorIconFonts
> Task :app:generateDebugAssets
> Task :react-native-pager-view:mergeDebugShaders
> Task :react-native-pager-view:compileDebugShaders NO-SOURCE
> Task :react-native-pager-view:generateDebugAssets UP-TO-DATE
> Task :react-native-pager-view:packageDebugAssets
> Task :app:processDebugManifestForPackage
> 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-vector-icons:mergeDebugShaders
> Task :react-native-vector-icons:compileDebugShaders NO-SOURCE
> Task :react-native-vector-icons:generateDebugAssets UP-TO-DATE
> Task :react-native-pager-view:generateDebugRFile
> Task :react-native-vector-icons:packageDebugAssets
> Task :react-native-vector-icons:generateDebugRFile
> Task :react-native-safe-area-context:generateDebugRFile

> Task :react-native-pager-view: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:processDebugResources

> Task :react-native-safe-area-context: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


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

> Task :react-native-vector-icons:bundleLibCompileToJarDebug
> Task :app:mergeDebugAssets
> Task :app:processDebugJavaRes NO-SOURCE
> Task :react-native-pager-view:processDebugJavaRes NO-SOURCE
> Task :react-native-safe-area-context: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 :react-native-pager-view:compileDebugKotlin
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:6:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:21:82 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:27:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:28:25 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:6:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:15:89 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:20:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:21:25 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:6:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:15:69 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:24:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:25:25 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java

> Task :react-native-safe-area-context:compileDebugKotlin
w: file:///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:desugarDebugFileDependencies
> Task :react-native-pager-view:compileDebugJavaWithJavac
> Task :react-native-pager-view:bundleLibCompileToJarDebug
> Task :react-native-safe-area-context:compileDebugJavaWithJavac
> Task :react-native-safe-area-context:bundleLibCompileToJarDebug
> Task :react-native-pager-view:bundleLibResDebug
> Task :app:compileDebugJavaWithJavac
> Task :react-native-safe-area-context:bundleLibResDebug
> Task :react-native-pager-view:bundleLibRuntimeToJarDebug
> Task :react-native-vector-icons:bundleLibRuntimeToJarDebug
> Task :react-native-safe-area-context:bundleLibRuntimeToJarDebug
> Task :app:mergeDebugJavaResource
> Task :app:mergeExtDexDebug
> Task :app:configureCMakeDebug[arm64-v8a]
> Task :app:mergeLibDexDebug
> Task :app:dexBuilderDebug
> Task :app:mergeProjectDexDebug

> Task :app:buildCMakeDebug[arm64-v8a]
C/C++: ninja: Entering directory `/app/android/app/.cxx/Debug/3d435a42/arm64-v8a'
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.cpp:1:
C/C++: /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.h:19:7: warning: designated initializers are a C++20 extension [-Wc++20-designator]
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.cpp:1:
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.h:6:
C/C++: /app/node_modules/react-native-safe-area-context/android/src/main/jni/../../../../common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.h:19:7: warning: designated initializers are a C++20 extension [-Wc++20-designator]

> Task :app:configureCMakeDebug[armeabi-v7a]

> Task :app:buildCMakeDebug[armeabi-v7a]
C/C++: ninja: Entering directory `/app/android/app/.cxx/Debug/3d435a42/armeabi-v7a'
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.cpp:1:
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.h:6:
C/C++: /app/node_modules/react-native-safe-area-context/android/src/main/jni/../../../../common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.h:19:7: warning: designated initializers are a C++20 extension [-Wc++20-designator]
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.cpp:1:
C/C++: /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.h:19:7: warning: designated initializers are a C++20 extension [-Wc++20-designator]

> Task :app:configureCMakeDebug[x86]

> Task :app:buildCMakeDebug[x86]
C/C++: ninja: Entering directory `/app/android/app/.cxx/Debug/3d435a42/x86'
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.cpp:1:
C/C++: /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.h:19:7: warning: designated initializers are a C++20 extension [-Wc++20-designator]
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.cpp:1:
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.h:6:
C/C++: /app/node_modules/react-native-safe-area-context/android/src/main/jni/../../../../common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.h:19:7: warning: designated initializers are a C++20 extension [-Wc++20-designator]

> Task :app:configureCMakeDebug[x86_64]

> Task :app:buildCMakeDebug[x86_64]
C/C++: ninja: Entering directory `/app/android/app/.cxx/Debug/3d435a42/x86_64'
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.cpp:1:
C/C++: /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.h:19:7: warning: designated initializers are a C++20 extension [-Wc++20-designator]
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.cpp:1:
C/C++: In file included from /app/node_modules/react-native-safe-area-context/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.h:6:
C/C++: /app/node_modules/react-native-safe-area-context/android/src/main/jni/../../../../common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.h:19:7: warning: designated initializers are a C++20 extension [-Wc++20-designator]

> Task :react-native-pager-view:mergeDebugJniLibFolders
> Task :react-native-pager-view:mergeDebugNativeLibs NO-SOURCE
> Task :react-native-pager-view:copyDebugJniLibsProjectOnly
> 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-vector-icons:mergeDebugJniLibFolders
> Task :react-native-vector-icons:mergeDebugNativeLibs NO-SOURCE
> Task :react-native-vector-icons:copyDebugJniLibsProjectOnly
> Task :app:externalNativeBuildDebug
> Task :app:mergeDebugJniLibFolders
> Task :app:validateSigningDebug
> Task :app:writeDebugAppMetadata
> Task :app:writeDebugSigningConfigVersions
> Task :react-native-pager-view:stripDebugDebugSymbols NO-SOURCE
> Task :react-native-pager-view:copyDebugJniLibsProjectAndLocalJars
> Task :app:mergeDebugNativeLibs
> Task :react-native-pager-view:extractDebugAnnotations
> Task :react-native-pager-view:extractDeepLinksForAarDebug
> Task :react-native-pager-view:mergeDebugGeneratedProguardFiles
> Task :react-native-pager-view:mergeDebugConsumerProguardFiles
> Task :react-native-pager-view:prepareDebugArtProfile
> Task :react-native-safe-area-context:stripDebugDebugSymbols NO-SOURCE
> 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-pager-view:prepareLintJarForPublish
> Task :react-native-safe-area-context:copyDebugJniLibsProjectAndLocalJars
> Task :react-native-pager-view:mergeDebugJavaResource
> Task :react-native-safe-area-context:mergeDebugJavaResource
> Task :react-native-pager-view:syncDebugLibJars
> Task :react-native-pager-view:bundleDebugAar
> Task :react-native-pager-view:assembleDebug
> Task :react-native-safe-area-context:syncDebugLibJars
> Task :react-native-safe-area-context:bundleDebugAar
> Task :react-native-safe-area-context:assembleDebug
> Task :react-native-vector-icons:stripDebugDebugSymbols NO-SOURCE
> Task :react-native-vector-icons:copyDebugJniLibsProjectAndLocalJars
> 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-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

BUILD SUCCESSFUL in 26m 53s
139 actionable tasks: 134 executed, 5 up-to-date

> docker run --rm -v /home/ubuntu/storage/extracted/bilaleren-mui-tabs/mui-tabs-6b7388ad1ef86adf1dcbf3aa71a874b25bcc43cd/examples/native-example:/source:ro -v /home/ubuntu/BachelorsThesis/scripts/RN/output/bilaleren-mui-tabs:/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
                    
yarn install v1.22.22
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
[4/5] Linking dependencies...
[5/5] Building fresh packages...
Done in 32.34s.
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
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.
> Task :react-native-pager-view:buildCodegenCLI SKIPPED
> Task :react-native-pager-view:generateCodegenSchemaFromJavaScript
> Task :react-native-pager-view:generateCodegenArtifactsFromSchema
> Task :react-native-pager-view:preBuild
> Task :react-native-pager-view:preReleaseBuild
> Task :react-native-pager-view:compileReleaseAidl NO-SOURCE
> Task :react-native-pager-view:mergeReleaseJniLibFolders
> Task :react-native-pager-view:mergeReleaseNativeLibs NO-SOURCE
> Task :react-native-pager-view:stripReleaseDebugSymbols NO-SOURCE
> Task :react-native-pager-view:copyReleaseJniLibsProjectAndLocalJars
> Task :react-native-pager-view:compileReleaseRenderscript NO-SOURCE
> Task :react-native-pager-view:generateReleaseResValues
> Task :react-native-pager-view:extractDeepLinksForAarRelease
> Task :react-native-pager-view:generateReleaseBuildConfig
> Task :react-native-pager-view:generateReleaseResources
> Task :react-native-pager-view:packageReleaseResources
> Task :react-native-pager-view:javaPreCompileRelease
> Task :react-native-pager-view:mergeReleaseShaders
> Task :react-native-pager-view:compileReleaseShaders NO-SOURCE
> Task :react-native-pager-view:generateReleaseAssets UP-TO-DATE
> Task :react-native-pager-view:packageReleaseAssets
> Task :react-native-pager-view:packageReleaseRenderscript NO-SOURCE
> Task :react-native-pager-view:prepareLintJarForPublish
> Task :react-native-pager-view:prepareReleaseArtProfile
> Task :react-native-pager-view:processReleaseJavaRes NO-SOURCE
> Task :react-native-safe-area-context:buildCodegenCLI SKIPPED
> Task :react-native-pager-view:parseReleaseLocalResources
> Task :react-native-pager-view:writeReleaseAarMetadata

> Task :react-native-pager-view:processReleaseManifest
package="com.reactnativepagerview" found in source AndroidManifest.xml: /app/node_modules/react-native-pager-view/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:generateCodegenSchemaFromJavaScript
> Task :react-native-safe-area-context:generateCodegenArtifactsFromSchema
> Task :react-native-safe-area-context:preBuild
> Task :react-native-safe-area-context:preReleaseBuild
> Task :react-native-safe-area-context:compileReleaseAidl NO-SOURCE
> Task :react-native-pager-view:generateReleaseRFile
> Task :react-native-safe-area-context:mergeReleaseJniLibFolders

> Task :react-native-pager-view:compileReleaseKotlin
'compileReleaseJavaWithJavac' task (current target is 11) and 'compileReleaseKotlin' 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 :react-native-safe-area-context:mergeReleaseNativeLibs NO-SOURCE
> Task :react-native-safe-area-context:stripReleaseDebugSymbols NO-SOURCE
> Task :react-native-safe-area-context:copyReleaseJniLibsProjectAndLocalJars
> Task :react-native-safe-area-context:compileReleaseRenderscript NO-SOURCE
> Task :react-native-safe-area-context:generateReleaseResValues
> Task :react-native-safe-area-context:extractDeepLinksForAarRelease
> Task :react-native-safe-area-context:generateReleaseBuildConfig
> Task :react-native-safe-area-context:generateReleaseResources
> Task :react-native-safe-area-context:packageReleaseResources
> Task :react-native-safe-area-context:javaPreCompileRelease
> Task :react-native-safe-area-context:parseReleaseLocalResources

> Task :react-native-safe-area-context:processReleaseManifest
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-safe-area-context:mergeReleaseShaders
> Task :react-native-safe-area-context:compileReleaseShaders NO-SOURCE
> Task :react-native-safe-area-context:generateReleaseAssets UP-TO-DATE
> Task :react-native-safe-area-context:packageReleaseAssets
> Task :react-native-safe-area-context:packageReleaseRenderscript NO-SOURCE
> Task :react-native-safe-area-context:prepareLintJarForPublish
> Task :react-native-safe-area-context:prepareReleaseArtProfile
> Task :react-native-safe-area-context:processReleaseJavaRes NO-SOURCE
> Task :react-native-vector-icons:buildCodegenCLI SKIPPED
> Task :react-native-safe-area-context:writeReleaseAarMetadata
> Task :react-native-safe-area-context:generateReleaseRFile
> Task :react-native-vector-icons:generateCodegenSchemaFromJavaScript
> Task :react-native-vector-icons:generateCodegenArtifactsFromSchema
> Task :react-native-vector-icons:preBuild
> Task :react-native-vector-icons:preReleaseBuild
> Task :react-native-vector-icons:compileReleaseAidl NO-SOURCE
> Task :react-native-vector-icons:mergeReleaseJniLibFolders
> Task :react-native-vector-icons:mergeReleaseNativeLibs NO-SOURCE
> Task :react-native-vector-icons:stripReleaseDebugSymbols NO-SOURCE
> Task :react-native-vector-icons:copyReleaseJniLibsProjectAndLocalJars
> Task :react-native-vector-icons:compileReleaseRenderscript NO-SOURCE
> Task :react-native-vector-icons:generateReleaseResValues
> Task :react-native-vector-icons:extractDeepLinksForAarRelease
> Task :react-native-vector-icons:generateReleaseBuildConfig
> Task :react-native-vector-icons:generateReleaseResources
> Task :react-native-vector-icons:packageReleaseResources
> Task :react-native-vector-icons:parseReleaseLocalResources
> Task :react-native-vector-icons:javaPreCompileRelease

> Task :react-native-vector-icons:processReleaseManifest
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-vector-icons:mergeReleaseShaders
> Task :react-native-vector-icons:compileReleaseShaders NO-SOURCE
> Task :react-native-vector-icons:generateReleaseAssets UP-TO-DATE
> Task :react-native-vector-icons:packageReleaseAssets
> Task :react-native-vector-icons:packageReleaseRenderscript NO-SOURCE
> Task :react-native-vector-icons:prepareLintJarForPublish
> Task :react-native-vector-icons:prepareReleaseArtProfile
> Task :react-native-vector-icons:processReleaseJavaRes NO-SOURCE
> Task :react-native-vector-icons:generateReleaseRFile
> Task :react-native-vector-icons:mergeReleaseJavaResource

> Task :react-native-safe-area-context:compileReleaseKotlin
'compileReleaseJavaWithJavac' task (current target is 11) and 'compileReleaseKotlin' 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 :react-native-vector-icons:extractReleaseAnnotations

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

> Task :react-native-pager-view:compileReleaseKotlin
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:6:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:21:82 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:27:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:28:25 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:6:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:15:89 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:20:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:21:25 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:6:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:15:69 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:24:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:25:25 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java

> Task :react-native-safe-area-context:compileReleaseKotlin
w: file:///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-pager-view:extractReleaseAnnotations
> Task :react-native-pager-view:compileReleaseJavaWithJavac
> Task :react-native-pager-view:mergeReleaseGeneratedProguardFiles
> Task :react-native-pager-view:mergeReleaseConsumerProguardFiles
> Task :react-native-safe-area-context:extractReleaseAnnotations
> Task :react-native-pager-view:mergeReleaseJavaResource
> Task :react-native-safe-area-context:compileReleaseJavaWithJavac
> Task :react-native-pager-view:syncReleaseLibJars
> Task :react-native-pager-view:bundleReleaseLocalLintAar
> Task :react-native-safe-area-context:mergeReleaseGeneratedProguardFiles
> Task :react-native-safe-area-context:mergeReleaseConsumerProguardFiles
> Task :react-native-vector-icons:mergeReleaseGeneratedProguardFiles
> Task :react-native-vector-icons:mergeReleaseConsumerProguardFiles
> Task :react-native-safe-area-context:mergeReleaseJavaResource
> Task :react-native-vector-icons:syncReleaseLibJars
> Task :react-native-safe-area-context:syncReleaseLibJars
> Task :react-native-safe-area-context:bundleReleaseLocalLintAar
> Task :app:buildCodegenCLI SKIPPED
> Task :app:generateCodegenSchemaFromJavaScript SKIPPED
> Task :app:generateCodegenArtifactsFromSchema SKIPPED
> Task :react-native-vector-icons:writeReleaseAarMetadata
> Task :react-native-vector-icons:bundleReleaseLocalLintAar
> Task :app:generateNewArchitectureFiles
> Task :app:generatePackageList
> Task :app:preBuild
> Task :app:preReleaseBuild
> Task :app:compileReleaseAidl NO-SOURCE
> Task :app:compileReleaseRenderscript NO-SOURCE
> Task :app:generateReleaseBuildConfig
> Task :app:javaPreCompileRelease
> Task :app:checkReleaseAarMetadata

> Task :app:createBundleReleaseJsAndAssets
debug Reading Metro config from /app/metro.config.js
warning: the transform cache was reset.
                Welcome to Metro v0.76.9
              Fast - Scalable - Integrated


Failed to construct transformer:  Error: ENOENT: no such file or directory, watch '/node_modules'Error: ENOENT: no such file or directory, watch '/node_modules'
    at FSWatcher.<computed> (node:internal/fs/watchers:247:19)
    at Object.watch (node:fs:2503:36)
    at NodeWatcher._watchdir (/app/node_modules/metro-file-map/src/watchers/NodeWatcher.js:145:24)
    at new NodeWatcher (/app/node_modules/metro-file-map/src/watchers/NodeWatcher.js:43:10)
    at createWatcherBackend (/app/node_modules/metro-file-map/src/Watcher.js:189:23)
    at Array.map (<anonymous>)
    at Watcher.watch (/app/node_modules/metro-file-map/src/Watcher.js:217:27)
    at HasteMap._watch (/app/node_modules/metro-file-map/src/index.js:987:25)
    at /app/node_modules/metro-file-map/src/index.js:336:20
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)

    at FSWatcher.<computed> (node:internal/fs/watchers:247:19)
    at Object.watch (node:fs:2503:36)
    at NodeWatcher._watchdir (/app/node_modules/metro-file-map/src/watchers/NodeWatcher.js:145:24)
    at new NodeWatcher (/app/node_modules/metro-file-map/src/watchers/NodeWatcher.js:43:10)
    at createWatcherBackend (/app/node_modules/metro-file-map/src/Watcher.js:189:23)
    at Array.map (<anonymous>)
    at Watcher.watch (/app/node_modules/metro-file-map/src/Watcher.js:217:27)
    at HasteMap._watch (/app/node_modules/metro-file-map/src/index.js:987:25)
    at /app/node_modules/metro-file-map/src/index.js:336:20
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
  errno: -2,
  syscall: 'watch',
  code: 'ENOENT',
  path: '/node_modules',
  filename: '/node_modules'
}
error ENOENT: no such file or directory, watch '/node_modules'

> Task :app:createBundleReleaseJsAndAssets FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:createBundleReleaseJsAndAssets'.
> Process 'command 'node'' finished with non-zero exit value 1

* 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.org85 actionable tasks: 80 executed, 5 up-to-date


BUILD FAILED in 2m 24s

> echo Build failed with Node 20 and jdk version 17 with the following error: Command '['docker', 'run', '--rm', '-v', '/home/ubuntu/storage/extracted/bilaleren-mui-tabs/mui-tabs-6b7388ad1ef86adf1dcbf3aa71a874b25bcc43cd/examples/native-example:/source:ro', '-v', '/home/ubuntu/BachelorsThesis/scripts/RN/output/bilaleren-mui-tabs:/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/bilaleren-mui-tabs/mui-tabs-6b7388ad1ef86adf1dcbf3aa71a874b25bcc43cd/examples/native-example:/source:ro', '-v', '/home/ubuntu/BachelorsThesis/scripts/RN/output/bilaleren-mui-tabs:/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 bilaleren-mui-tabs with Node 22 and jdk 17
Attempting build for bilaleren-mui-tabs with Node 22 and jdk 17

> docker run --rm -v /home/ubuntu/storage/extracted/bilaleren-mui-tabs/mui-tabs-6b7388ad1ef86adf1dcbf3aa71a874b25bcc43cd/examples/native-example:/source:ro -v /home/ubuntu/BachelorsThesis/scripts/RN/output/bilaleren-mui-tabs:/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
                    
yarn install v1.22.22
[1/5] Validating package.json...
[2/5] Resolving packages...
[3/5] Fetching packages...
[4/5] Linking dependencies...
[5/5] Building fresh packages...
Done in 30.74s.
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 :app
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:externalNativeBuildCleanDebug
> Task :app:externalNativeBuildCleanRelease
> Task :app:clean
> Task :react-native-pager-view:clean UP-TO-DATE
> Task :react-native-safe-area-context:clean UP-TO-DATE
> Task :react-native-vector-icons:clean UP-TO-DATE

BUILD SUCCESSFUL in 5m 37s
11 actionable tasks: 8 executed, 3 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
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.
> Task :app:buildCodegenCLI SKIPPED
> Task :app:generateCodegenSchemaFromJavaScript SKIPPED
> Task :app:generateCodegenArtifactsFromSchema SKIPPED
> Task :app:generateNewArchitectureFiles
> Task :app:generatePackageList
> Task :app:preBuild
> Task :app:preDebugBuild
> Task :app:mergeDebugNativeDebugMetadata NO-SOURCE
> Task :react-native-pager-view:buildCodegenCLI SKIPPED
> Task :react-native-pager-view:generateCodegenSchemaFromJavaScript
> Task :react-native-pager-view:generateCodegenArtifactsFromSchema
> Task :react-native-pager-view:preBuild
> Task :react-native-pager-view:preDebugBuild
> Task :react-native-pager-view:compileDebugAidl NO-SOURCE
> Task :react-native-safe-area-context:buildCodegenCLI SKIPPED
> Task :react-native-safe-area-context:generateCodegenSchemaFromJavaScript
> Task :react-native-safe-area-context:generateCodegenArtifactsFromSchema
> Task :react-native-safe-area-context:preBuild
> Task :react-native-safe-area-context:preDebugBuild
> Task :react-native-safe-area-context:compileDebugAidl NO-SOURCE
> Task :react-native-vector-icons:buildCodegenCLI SKIPPED
> Task :react-native-vector-icons:generateCodegenSchemaFromJavaScript
> Task :react-native-vector-icons:generateCodegenArtifactsFromSchema
> Task :react-native-vector-icons:preBuild
> Task :react-native-vector-icons:preDebugBuild
> Task :react-native-vector-icons:compileDebugAidl NO-SOURCE
> Task :app:compileDebugAidl NO-SOURCE
> Task :react-native-pager-view:packageDebugRenderscript NO-SOURCE
> Task :react-native-safe-area-context: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-pager-view:writeDebugAarMetadata
> Task :react-native-safe-area-context:writeDebugAarMetadata
> Task :react-native-vector-icons:writeDebugAarMetadata
> Task :app:generateDebugResValues
> Task :app:checkDebugAarMetadata
> Task :react-native-pager-view:compileDebugRenderscript NO-SOURCE
> Task :react-native-pager-view:generateDebugResValues
> Task :react-native-pager-view:generateDebugResources
> Task :react-native-pager-view: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-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-pager-view:extractDeepLinksDebug
> Task :react-native-safe-area-context:extractDeepLinksDebug
> Task :react-native-vector-icons:extractDeepLinksDebug
> Task :app:mergeDebugResources

> 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-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-pager-view:processDebugManifest
package="com.reactnativepagerview" found in source AndroidManifest.xml: /app/node_modules/react-native-pager-view/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-pager-view:compileDebugLibraryResources
> Task :app:processDebugMainManifest
> Task :app:processDebugManifest
> Task :react-native-safe-area-context:compileDebugLibraryResources
> Task :app:processDebugManifestForPackage
> Task :react-native-vector-icons:compileDebugLibraryResources
> Task :react-native-pager-view:generateDebugBuildConfig
> Task :react-native-pager-view:javaPreCompileDebug
> Task :react-native-safe-area-context:generateDebugBuildConfig
> Task :react-native-safe-area-context:javaPreCompileDebug
> Task :react-native-vector-icons:generateDebugBuildConfig
> Task :react-native-vector-icons:javaPreCompileDebug
> Task :react-native-vector-icons:parseDebugLocalResources
> Task :app:mergeDebugShaders
> Task :react-native-safe-area-context:parseDebugLocalResources
> Task :react-native-pager-view:parseDebugLocalResources
> Task :app:compileDebugShaders NO-SOURCE
> Task :app:copyReactNativeVectorIconFonts
> Task :app:generateDebugAssets
> Task :react-native-pager-view:mergeDebugShaders
> Task :react-native-pager-view:compileDebugShaders NO-SOURCE
> Task :react-native-pager-view:generateDebugAssets UP-TO-DATE
> Task :react-native-pager-view: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-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 :react-native-pager-view:generateDebugRFile
> Task :react-native-safe-area-context:generateDebugRFile
> Task :react-native-vector-icons:generateDebugRFile
> Task :app:mergeDebugAssets
> Task :app:processDebugResources

> Task :react-native-pager-view: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 :react-native-vector-icons:compileDebugJavaWithJavacNote: /app/node_modules/react-native-vector-icons/android/src/newarch/java/com/oblador/vectoricons/VectorIconsModule.java uses or overrides a deprecated API.

Note: Recompile with -Xlint:deprecation for details.

> Task :react-native-safe-area-context: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 :react-native-vector-icons:bundleLibCompileToJarDebug
> Task :app:processDebugJavaRes NO-SOURCE
> Task :react-native-pager-view:processDebugJavaRes NO-SOURCE
> Task :react-native-safe-area-context: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: file:///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-pager-view:compileDebugKotlin
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:6:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:21:82 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:27:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:28:25 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:6:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:15:89 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:20:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:21:25 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:6:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:15:69 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:24:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:25:25 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java

> Task :app:mergeExtDexDebug
> Task :react-native-pager-view:compileDebugJavaWithJavac
> Task :react-native-pager-view:bundleLibCompileToJarDebug
> Task :react-native-safe-area-context:compileDebugJavaWithJavac
> Task :react-native-safe-area-context:bundleLibCompileToJarDebug
> Task :react-native-pager-view:bundleLibResDebug
> Task :app:compileDebugJavaWithJavac
> Task :react-native-safe-area-context:bundleLibResDebug
> Task :react-native-pager-view:bundleLibRuntimeToJarDebug
> Task :react-native-safe-area-context:bundleLibRuntimeToJarDebug
> Task :react-native-vector-icons:bundleLibRuntimeToJarDebug
> Task :app:mergeDebugJavaResource
> Task :app:configureCMakeDebug[arm64-v8a]
> Task :app:mergeLibDexDebug
> Task :app:dexBuilderDebug
> Task :app:mergeProjectDexDebug
> Task :app:buildCMakeDebug[arm64-v8a]

The message received from the daemon indicates that the daemon has disappeared.
Build request sent: Build{id=ce5688b9-5417-46b7-963e-f39098f9a8f9, currentDir=/app/android}
Attempting to read last messages from the daemon log...
Daemon pid: 746
  log file: /opt/gradle/daemon/8.0.1/daemon-746.out.log
----- Last  20 lines from daemon log file - daemon-746.out.log -----
Consider using JVM toolchain: https://kotl.in/gradle/jvm/toolchain

'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

Note: /app/node_modules/react-native-vector-icons/android/src/newarch/java/com/oblador/vectoricons/VectorIconsModule.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
w: file:///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
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:6:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:21:82 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:27:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollEvent.kt:28:25 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:6:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:15:89 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:20:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageScrollStateChangedEvent.kt:21:25 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:6:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:15:69 'constructor Event<T : Event<(raw) Event<*>>!>(Int)' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:24:44 'RCTEventEmitter' is deprecated. Deprecated in Java
w: file:///app/node_modules/react-native-pager-view/android/src/main/java/com/reactnativepagerview/event/PageSelectedEvent.kt:25:25 'receiveEvent(Int, String!, WritableMap?): Unit' is deprecated. Deprecated in Java
----- End of the daemon log -----


FAILURE: Build failed with an exception.

* What went wrong:
Gradle build daemon disappeared unexpectedly (it may have been killed or may have crashed)

* 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

> echo Build failed with Node 22 and jdk version 17 with the following error: Command '['docker', 'run', '--rm', '-v', '/home/ubuntu/storage/extracted/bilaleren-mui-tabs/mui-tabs-6b7388ad1ef86adf1dcbf3aa71a874b25bcc43cd/examples/native-example:/source:ro', '-v', '/home/ubuntu/BachelorsThesis/scripts/RN/output/bilaleren-mui-tabs:/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 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                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                # ---- clean gradle ----\n                (./gradlew clean || true) && \n                # ---- pre-resolve AAR transforms so CMake finds prefab paths ----\n                ./gradlew :app:dependencies --configuration debugCompileClasspath --no-daemon > /dev/null 2>&1 || 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                # ---- build debug apk ----\n                ./gradlew assembleDebug --no-daemon || exit 1 && \n                APK_PATH="app/build/outputs/apk/debug"\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                # ---- copy output ----\n                cp app/build/outputs/apk/debug/*.apk /output/\n\n                # ---- copy TPL metadata ----\n                [ -f ../package.json ] && cp ../package.json /output/ || true\n                [ -f ../package-lock.json ] && cp ../package-lock.json /output/ || true\n                [ -f ../yarn.lock ] && cp ../yarn.lock /output/ || true\n                [ -f ../pnpm-lock.yaml ] && cp ../pnpm-lock.yaml /output/ || true\n                [ -f app/build.gradle ] && cp app/build.gradle /output/android-build.gradle || true\n                [ -f build.gradle ] && cp build.gradle /output/root-build.gradle || true\n                [ -f build.gradle.kts ] && cp build.gradle.kts /output/root-build.gradle.kts || true\n                [ -f settings.gradle ] && cp settings.gradle /output/ || true\n                [ -f settings.gradle.kts ] && cp settings.gradle.kts /output/ || true\n                [ -f gradle/libs.versions.toml ] && cp gradle/libs.versions.toml /output/ || 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/ 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/ 2>/dev/null; done || true\n                mkdir -p /output/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/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/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/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/bilaleren-mui-tabs/mui-tabs-6b7388ad1ef86adf1dcbf3aa71a874b25bcc43cd/examples/native-example:/source:ro', '-v', '/home/ubuntu/BachelorsThesis/scripts/RN/output/bilaleren-mui-tabs:/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 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                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                # ---- clean gradle ----\n                (./gradlew clean || true) && \n                # ---- pre-resolve AAR transforms so CMake finds prefab paths ----\n                ./gradlew :app:dependencies --configuration debugCompileClasspath --no-daemon > /dev/null 2>&1 || 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                # ---- build debug apk ----\n                ./gradlew assembleDebug --no-daemon || exit 1 && \n                APK_PATH="app/build/outputs/apk/debug"\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                # ---- copy output ----\n                cp app/build/outputs/apk/debug/*.apk /output/\n\n                # ---- copy TPL metadata ----\n                [ -f ../package.json ] && cp ../package.json /output/ || true\n                [ -f ../package-lock.json ] && cp ../package-lock.json /output/ || true\n                [ -f ../yarn.lock ] && cp ../yarn.lock /output/ || true\n                [ -f ../pnpm-lock.yaml ] && cp ../pnpm-lock.yaml /output/ || true\n                [ -f app/build.gradle ] && cp app/build.gradle /output/android-build.gradle || true\n                [ -f build.gradle ] && cp build.gradle /output/root-build.gradle || true\n                [ -f build.gradle.kts ] && cp build.gradle.kts /output/root-build.gradle.kts || true\n                [ -f settings.gradle ] && cp settings.gradle /output/ || true\n                [ -f settings.gradle.kts ] && cp settings.gradle.kts /output/ || true\n                [ -f gradle/libs.versions.toml ] && cp gradle/libs.versions.toml /output/ || 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/ 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/ 2>/dev/null; done || true\n                mkdir -p /output/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/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/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/libs/ 2>/dev/null; done || true\n                    ']' returned non-zero exit status 1.
