Skip to content

Instantly share code, notes, and snippets.

@stevoland
Last active April 25, 2023 17:21
Show Gist options
  • Select an option

  • Save stevoland/3d3b8653f936776fc26a59c5f92fb8f0 to your computer and use it in GitHub Desktop.

Select an option

Save stevoland/3d3b8653f936776fc26a59c5f92fb8f0 to your computer and use it in GitHub Desktop.

Revisions

  1. stevoland revised this gist Apr 25, 2023. 2 changed files with 0 additions and 956 deletions.
    393 changes: 0 additions & 393 deletions app-build.gradle
    Original file line number Diff line number Diff line change
    @@ -1,393 +0,0 @@
    plugins {
    id "io.sentry.android.gradle" version "2.1.5" apply false
    id("com.datadoghq.dd-sdk-android-gradle-plugin") version "1.8.+"
    }
    def is_ci_from_properties = project.getProperties().get("is_ci").toString()

    def is_ci = is_ci_from_properties.contentEquals("true")
    // sentry will fail the build on local dev machines if plugin is applied
    if(is_ci) {
    apply plugin: "io.sentry.android.gradle"
    }

    datadog {
    checkProjectDependencies = "none"
    serviceName = "native"
    mappingFilePath = "build/mapping.txt"
    }

    apply plugin: "com.android.application"
    apply plugin: 'com.google.gms.google-services'

    // flavor+buildType specific env files - keys need to be "$flavor$buildType".toLowerCase()
    project.ext.envConfigFiles = [
    dev: ".env",
    staging: ".env.staging",
    bugbounty: ".env.bugbounty",
    sandbox: ".env.sandbox",
    production: ".env.prod",
    store: ".env.prod",
    ]
    apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"

    import com.android.build.OutputFile

    project.ext.react = [
    bundleInDebug: false,
    enableHermes: true, // clean and rebuild if changing
    hermesFlagsRelease: ["-O", "-output-source-map"],
    ]

    apply from: "../../node_modules/react-native/react.gradle"

    if(is_ci) {
    apply from: "../../node_modules/@sentry/react-native/sentry.gradle"
    }

    def ENV = System.getenv()

    /**
    * Browserstack's network loggging uses a MITM proxy so a custom
    * config without cert pinning is required
    */
    def releaseNetworkSecurityConfig = project.env.get("IS_TESTING") == 'true' ? '@xml/network_security_config_browserstack' : '@xml/network_security_config'

    /**
    * Set this to true to create two separate APKs instead of one:
    * - An APK that only works on ARM devices
    * - An APK that only works on x86 devices
    * The advantage is the size of the APK is reduced by about 4MB.
    * Upload all the APKs to the Play Store and people will download
    * the correct one based on the CPU architecture of their device.
    */
    def enableSeparateBuildPerCPUArchitecture = ENV['ENABLE_ABI_SPLITS'] ? ENV['ENABLE_ABI_SPLITS'].toBoolean() : false

    /**
    * Run Proguard to shrink the Java bytecode in release builds.
    */
    def enableProguardInReleaseBuilds = true

    /**
    * The preferred build flavor of JavaScriptCore.
    *
    * For example, to use the international variant, you can use:
    * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
    *
    * The international variant includes ICU i18n library and necessary data
    * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
    * give correct results when using with locales other than en-US. Note that
    * this variant is about 6MiB larger per architecture than default.
    */
    def jscFlavor = 'org.webkit:android-jsc:+'

    /**
    * Whether to enable the Hermes VM.
    *
    * This should be set on project.ext.react and that value will be read here. If it is not set
    * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
    * and the benefits of using Hermes will therefore be sharply reduced.
    */
    def enableHermes = project.ext.react.get("enableHermes", false);

    /**
    * Architectures to build native code for.
    */
    def reactNativeArchitectures() {
    def value = project.getProperties().get("reactNativeArchitectures")
    return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
    }

    repositories {
    google()
    mavenLocal()
    mavenCentral()
    }

    android {
    ndkVersion rootProject.ext.ndkVersion

    compileSdkVersion rootProject.ext.compileSdkVersion

    defaultConfig {
    applicationId "uk.co.mettle"
    minSdkVersion rootProject.ext.minSdkVersion
    targetSdkVersion rootProject.ext.targetSdkVersion
    versionCode 77163
    versionName "2.70.0"
    multiDexEnabled true
    buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
    resValue "string", "build_config_package", "uk.co.mettle" // for react-native-config

    if (isNewArchitectureEnabled()) {
    // We configure the NDK build only if you decide to opt-in for the New Architecture.
    externalNativeBuild {
    ndkBuild {
    arguments "APP_PLATFORM=android-21",
    "APP_STL=c++_shared",
    "NDK_TOOLCHAIN_VERSION=clang",
    "GENERATED_SRC_DIR=$buildDir/generated/source",
    "PROJECT_BUILD_DIR=$buildDir",
    "REACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid",
    "REACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build",
    "NODE_MODULES_DIR=$rootDir/../node_modules"
    cFlags "-Wall", "-Werror", "-fexceptions", "-frtti", "-DWITH_INSPECTOR=1"
    cppFlags "-std=c++17"
    // Make sure this target name is the same you specify inside the
    // src/main/jni/Android.mk file for the `LOCAL_MODULE` variable.
    targets "mettle_appmodules"
    }
    }
    if (!enableSeparateBuildPerCPUArchitecture) {
    ndk {
    abiFilters (*reactNativeArchitectures())
    }
    }
    }
    }

    if (isNewArchitectureEnabled()) {
    // We configure the NDK build only if you decide to opt-in for the New Architecture.
    externalNativeBuild {
    ndkBuild {
    path "$projectDir/src/main/jni/Android.mk"
    }
    }
    def reactAndroidProjectDir = project(':ReactAndroid').projectDir
    def packageReactNdkDebugLibs = tasks.register("packageReactNdkDebugLibs", Copy) {
    dependsOn(":ReactAndroid:packageReactNdkDebugLibsForBuck")
    from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
    into("$buildDir/react-ndk/exported")
    }
    def packageReactNdkReleaseLibs = tasks.register("packageReactNdkReleaseLibs", Copy) {
    dependsOn(":ReactAndroid:packageReactNdkReleaseLibsForBuck")
    from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
    into("$buildDir/react-ndk/exported")
    }
    afterEvaluate {
    // If you wish to add a custom TurboModule or component locally,
    // you should uncomment this line.
    // preBuild.dependsOn("generateCodegenArtifactsFromSchema")
    preDebugBuild.dependsOn(packageReactNdkDebugLibs)
    preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)

    // Due to a bug inside AGP, we have to explicitly set a dependency
    // between configureNdkBuild* tasks and the preBuild tasks.
    // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732
    configureNdkBuildRelease.dependsOn(preReleaseBuild)
    configureNdkBuildDebug.dependsOn(preDebugBuild)
    reactNativeArchitectures().each { architecture ->
    tasks.findByName("configureNdkBuildDebug[${architecture}]")?.configure {
    dependsOn("preDebugBuild")
    }
    tasks.findByName("configureNdkBuildRelease[${architecture}]")?.configure {
    dependsOn("preReleaseBuild")
    }
    }
    }
    }

    splits {
    abi {
    reset()
    enable enableSeparateBuildPerCPUArchitecture
    universalApk true // If true, also generate a universal APK
    include (*reactNativeArchitectures())
    }
    }
    buildTypes {
    debug {
    minifyEnabled false
    debuggable true
    proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro", "proguard-rules-debug.pro"
    }
    release {
    minifyEnabled enableProguardInReleaseBuilds
    debuggable false
    proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro", "proguard-rules-release.pro"
    signingConfig signingConfigs.release
    }
    }

    flavorDimensions "main"
    productFlavors {
    dev {
    dimension "main"
    manifestPlaceholders = [
    appName: "Mettle Dev",
    urlScheme: "mettle-dev",
    universalUrlPath: "dev/",
    releaseNetworkSecurityConfig: releaseNetworkSecurityConfig
    ]
    applicationIdSuffix ".dev"
    }
    staging {
    dimension "main"
    manifestPlaceholders = [
    appName: "Mettle Staging",
    urlScheme: "mettle-staging",
    universalUrlPath: "staging/",
    releaseNetworkSecurityConfig: releaseNetworkSecurityConfig
    ]
    applicationIdSuffix ".staging"
    }
    sandbox {
    dimension "main"
    manifestPlaceholders = [
    appName: "Mettle Sandbox",
    urlScheme: "mettle-sandbox",
    universalUrlPath: "sandbox/",
    releaseNetworkSecurityConfig: releaseNetworkSecurityConfig
    ]
    applicationIdSuffix ".sandbox"
    }
    bugbounty {
    dimension "main"
    manifestPlaceholders = [
    appName: "Mettle BBP",
    urlScheme: "mettle",
    universalUrlPath: "",
    releaseNetworkSecurityConfig: releaseNetworkSecurityConfig
    ]
    applicationIdSuffix ".app"
    versionNameSuffix ".bbp"
    }
    production {
    dimension "main"
    manifestPlaceholders = [
    appName: "Mettle Internal",
    urlScheme: "mettle",
    universalUrlPath: "",
    releaseNetworkSecurityConfig: releaseNetworkSecurityConfig
    ]
    applicationIdSuffix ".app"
    }
    store {
    dimension "main"
    manifestPlaceholders = [
    appName: "Mettle",
    urlScheme: "mettle",
    universalUrlPath: "",
    releaseNetworkSecurityConfig: releaseNetworkSecurityConfig
    ]
    applicationIdSuffix ".app"
    }
    }

    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
    variant.outputs.each { output ->
    // Legacy version override, we used to set unique version for each separate APK architecture.
    // We want to set a single version for AAB build going forward.
    // It should be higher than the previous build uploaded to the Play Store and incremental.
    output.versionCodeOverride = 4 * 1048576 + defaultConfig.versionCode
    }
    }

    // Required by https://github.com/wonday/react-native-pdf
    packagingOptions {
    pickFirst 'lib/x86/libc++_shared.so'
    pickFirst 'lib/x86_64/libjsc.so'
    pickFirst 'lib/arm64-v8a/libjsc.so'
    pickFirst 'lib/arm64-v8a/libc++_shared.so'
    pickFirst 'lib/x86_64/libc++_shared.so'
    pickFirst 'lib/armeabi-v7a/libc++_shared.so'
    }
    }

    dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])

    //noinspection GradleDynamicVersion
    implementation "com.facebook.react:react-native:+" // From node_modules

    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"

    implementation "androidx.multidex:multidex:2.0.1"
    implementation 'com.madgag.spongycastle:bcpkix-jdk15on:1.58.0.0'
    implementation 'com.madgag.spongycastle:bcpg-jdk15on:1.58.0.0'
    implementation 'com.onfido.sdk.capture:onfido-capture-sdk:12.1.0'
    implementation 'com.squareup.okhttp3:logging-interceptor:3.11.0'
    implementation 'android.arch.lifecycle:extensions:1.1.1'
    implementation 'androidx.biometric:biometric:1.0.1'
    implementation "androidx.security:security-crypto:1.0.0-alpha02"

    if(is_ci){
    implementation project(':@sentry_react-native')
    }


    // Required for SMS Verify in SMS OTP Auto-Entry Feature
    implementation 'com.google.android.gms:play-services-auth:19.0.0'
    implementation 'com.google.android.gms:play-services-auth-api-phone:17.5.0'

    // Required for branch
    implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'

    // Play core required for in app reviews
    implementation 'com.google.android.play:core:1.9.0'

    // Import the Google Pay Push Provisioning SDK from android/app/libs/
    implementation(name:'play-services-tapandpay-17.0.1', ext:'aar')

    // Used by PushNotificationListener.java
    implementation 'com.google.firebase:firebase-messaging:21.1.0'

    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test:rules:1.2.0'
    androidTestImplementation 'org.hamcrest:hamcrest-library:1.3'

    debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
    exclude group:'com.facebook.fbjni'
    }

    debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
    exclude group:'com.facebook.flipper'
    exclude group:'com.squareup.okhttp3', module:'okhttp'
    }

    debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
    exclude group:'com.facebook.flipper'
    }

    if (enableHermes) {
    //noinspection GradleDynamicVersion
    implementation("com.facebook.react:hermes-engine:+") { // From node_modules
    exclude group:'com.facebook.fbjni'
    }
    } else {
    implementation jscFlavor
    }
    }

    if (isNewArchitectureEnabled()) {
    // If new architecture is enabled, we let you build RN from source
    // Otherwise we fallback to a prebuilt .aar bundled in the NPM package.
    // This will be applied to all the imported transtitive dependency.
    configurations.all {
    resolutionStrategy.dependencySubstitution {
    substitute(module("com.facebook.react:react-native"))
    .using(project(":ReactAndroid"))
    .because("On New Architecture we're building React Native from source")
    substitute(module("com.facebook.react:hermes-engine"))
    .using(project(":ReactAndroid:hermes-engine"))
    .because("On New Architecture we're building Hermes from source")
    }
    }
    }

    // Run this once to be able to run the application with BUCK
    // puts all compile dependencies into folder libs for BUCK to use
    task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.implementation
    into 'libs'
    }

    apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)

    def isNewArchitectureEnabled() {
    // To opt-in for the New Architecture, you can either:
    // - Set `newArchEnabled` to true inside the `gradle.properties` file
    // - Invoke gradle with `-newArchEnabled=true`
    // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`
    return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
    }
    563 changes: 0 additions & 563 deletions gradlew buildEnvironment
    Original file line number Diff line number Diff line change
    @@ -1,563 +0,0 @@
    $ ./gradlew buildEnvironment
    To honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/7.3.3/userguide/gradle_daemon.html#sec:disabling_the_daemon.
    Daemon will be stopped at the end of the build

    > Configure project :@sentry_react-native
    WARNING:The option 'android.useDeprecatedNdk' is deprecated.
    The current default is 'false'.
    It has been removed from the current version of the Android Gradle plugin.
    NdkCompile is no longer supported
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :adrianso_react-native-device-brightness
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :app
    Reading env from: .env
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.
    Minifying disabled for variant devDebug, no upload task created
    Minifying disabled for variant stagingDebug, no upload task created
    Minifying disabled for variant sandboxDebug, no upload task created
    Minifying disabled for variant bugbountyDebug, no upload task created
    Minifying disabled for variant productionDebug, no upload task created
    Minifying disabled for variant storeDebug, no upload task created

    > Configure project :datadog_mobile-react-native
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :intercom_intercom-react-native
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :lottie-react-native
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.
    WARNING:Software Components will not be created automatically for Maven publishing from Android Gradle Plugin 8.0. To opt-in to the future behavior, set the Gradle property android.disableAutomaticComponentCreation=true in the `gradle.properties` file or use the new publishing DSL.

    > Configure project :react-native-blob-util
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.
    WARNING:Software Components will not be created automatically for Maven publishing from Android Gradle Plugin 8.0. To opt-in to the future behavior, set the Gradle property android.disableAutomaticComponentCreation=true in the `gradle.properties` file or use the new publishing DSL.

    > Configure project :react-native-branch
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-clipboard_clipboard
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-community_async-storage
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-community_datetimepicker
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-community_netinfo
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-community_slider
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-config
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-device-info
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-document-picker
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-firebase_analytics
    :react-native-firebase_analytics package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/analytics/package.json
    :react-native-firebase_app package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/app/package.json
    :react-native-firebase_analytics:firebase.bom using default value: 30.1.0
    :react-native-firebase_analytics package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/analytics/package.json
    :react-native-firebase_analytics:version set from package.json: 14.11.1 (14,11,1 - 14011001)
    :react-native-firebase_analytics:android.compileSdk using custom value: 31
    :react-native-firebase_analytics:android.targetSdk using custom value: 31
    :react-native-firebase_analytics:android.minSdk using custom value: 24
    :react-native-firebase_analytics:reactNativeAndroidDir /home/circleci/mettle/node_modules/react-native/android
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-firebase_app
    :react-native-firebase_app package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/app/package.json
    :react-native-firebase_app:firebase.bom using default value: 30.1.0
    :react-native-firebase_app:play.play-services-auth using default value: 20.2.0
    :react-native-firebase_app package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/app/package.json
    :react-native-firebase_app:version set from package.json: 14.11.1 (14,11,1 - 14011001)
    :react-native-firebase_app:android.compileSdk using custom value: 31
    :react-native-firebase_app:android.targetSdk using custom value: 31
    :react-native-firebase_app:android.minSdk using custom value: 24
    :react-native-firebase_app:reactNativeAndroidDir /home/circleci/mettle/node_modules/react-native/android
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-firebase_messaging
    :react-native-firebase_messaging package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/messaging/package.json
    :react-native-firebase_app package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/app/package.json
    :react-native-firebase_messaging:firebase.bom using default value: 30.1.0
    :react-native-firebase_messaging package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/messaging/package.json
    :react-native-firebase_messaging:version set from package.json: 14.11.1 (14,11,1 - 14011001)
    :react-native-firebase_messaging:android.compileSdk using custom value: 31
    :react-native-firebase_messaging:android.targetSdk using custom value: 31
    :react-native-firebase_messaging:android.minSdk using custom value: 24
    :react-native-firebase_messaging:reactNativeAndroidDir /home/circleci/mettle/node_modules/react-native/android
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-firebase_remote-config
    :react-native-firebase_remote-config package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/remote-config/package.json
    :react-native-firebase_app package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/app/package.json
    :react-native-firebase_remote-config:firebase.bom using default value: 30.1.0
    :react-native-firebase_remote-config package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/remote-config/package.json
    :react-native-firebase_remote-config:version set from package.json: 14.11.1 (14,11,1 - 14011001)
    :react-native-firebase_remote-config:android.compileSdk using custom value: 31
    :react-native-firebase_remote-config:android.targetSdk using custom value: 31
    :react-native-firebase_remote-config:android.minSdk using custom value: 24
    :react-native-firebase_remote-config:reactNativeAndroidDir /home/circleci/mettle/node_modules/react-native/android
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-flipper
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.
    WARNING:Software Components will not be created automatically for Maven publishing from Android Gradle Plugin 8.0. To opt-in to the future behavior, set the Gradle property android.disableAutomaticComponentCreation=true in the `gradle.properties` file or use the new publishing DSL.

    > Configure project :react-native-flipper-performance-plugin
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-fs
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-gesture-handler
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-get-random-values
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-haptic-feedback
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-pdf
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-push-notification
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-reanimated
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.
    WARNING:Software Components will not be created automatically for Maven publishing from Android Gradle Plugin 8.0. To opt-in to the future behavior, set the Gradle property android.disableAutomaticComponentCreation=true in the `gradle.properties` file or use the new publishing DSL.

    > Configure project :react-native-restart
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-safe-area-context
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-screens
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-svg
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-webview
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :sentry_react-native
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :shopify_flash-list
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    The Kotlin Gradle plugin was loaded multiple times in different subprojects, which is not supported and may break the build.
    This might happen in subprojects that apply the Kotlin plugins with the Gradle 'plugins { ... }' DSL if they specify explicit versions, even if the versions are equal.
    Please add the Kotlin plugin to the common parent project or the root project, then remove the versions in the subprojects.
    If the parent project does not need the plugin, add 'apply false' to the plugin line.
    See: https://docs.gradle.org/current/userguide/plugins.html#sec:subprojects_plugins_dsl
    The Kotlin plugin was loaded in the following projects: ':datadog_mobile-react-native', ':react-native-safe-area-context', ':react-native-screens', ':react-native-webview'

    > Task :buildEnvironment

    ------------------------------------------------------------
    Root project 'eevee'
    ------------------------------------------------------------

    classpath
    +--- com.android.tools.build:gradle:7.1.1
    | +--- com.android.tools:sdk-common:30.1.1
    | | +--- com.android.tools:sdklib:30.1.1
    | | | +--- com.android.tools.layoutlib:layoutlib-api:30.1.1
    | | | | +--- com.android.tools:common:30.1.1
    | | | | | +--- com.android.tools:annotations:30.1.1
    | | | | | +--- com.google.guava:guava:30.1-jre -> 31.0.1-jre
    | | | | | | +--- com.google.guava:failureaccess:1.0.1
    | | | | | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
    | | | | | | +--- com.google.code.findbugs:jsr305:3.0.2
    | | | | | | +--- org.checkerframework:checker-qual:3.12.0
    | | | | | | +--- com.google.errorprone:error_prone_annotations:2.7.1
    | | | | | | \--- com.google.j2objc:j2objc-annotations:1.3
    | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10
    | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10
    | | | | | | +--- org.jetbrains:annotations:13.0
    | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10
    | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.10
    | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
    | | | | +--- net.sf.kxml:kxml2:2.3.0
    | | | | +--- com.android.tools:annotations:30.1.1
    | | | | \--- org.jetbrains:annotations:13.0
    | | | +--- com.android.tools:dvlib:30.1.1
    | | | | \--- com.android.tools:common:30.1.1 (*)
    | | | +--- com.android.tools:common:30.1.1 (*)
    | | | +--- com.google.code.gson:gson:2.8.6 -> 2.8.9
    | | | +--- org.glassfish.jaxb:jaxb-runtime:2.3.2
    | | | | +--- jakarta.xml.bind:jakarta.xml.bind-api:2.3.2
    | | | | | \--- jakarta.activation:jakarta.activation-api:1.2.1
    | | | | +--- org.glassfish.jaxb:txw2:2.3.2
    | | | | +--- com.sun.istack:istack-commons-runtime:3.0.8
    | | | | | \--- jakarta.activation:jakarta.activation-api:1.2.1
    | | | | +--- org.jvnet.staxex:stax-ex:1.8.1
    | | | | | +--- jakarta.activation:jakarta.activation-api:1.2.1
    | | | | | \--- jakarta.xml.bind:jakarta.xml.bind-api:2.3.2 (*)
    | | | | +--- com.sun.xml.fastinfoset:FastInfoset:1.2.16
    | | | | \--- jakarta.activation:jakarta.activation-api:1.2.1
    | | | +--- org.apache.commons:commons-compress:1.20
    | | | +--- org.apache.httpcomponents:httpmime:4.5.6
    | | | | \--- org.apache.httpcomponents:httpclient:4.5.6
    | | | | +--- org.apache.httpcomponents:httpcore:4.4.10
    | | | | +--- commons-logging:commons-logging:1.2
    | | | | \--- commons-codec:commons-codec:1.10
    | | | +--- org.apache.httpcomponents:httpcore:4.4.10
    | | | \--- com.android.tools:repository:30.1.1
    | | | +--- com.android.tools:common:30.1.1 (*)
    | | | +--- com.android.tools.analytics-library:shared:30.1.1
    | | | | +--- com.android.tools:annotations:30.1.1
    | | | | +--- com.android.tools:common:30.1.1 (*)
    | | | | +--- com.google.guava:guava:30.1-jre -> 31.0.1-jre (*)
    | | | | +--- com.google.code.gson:gson:2.8.6 -> 2.8.9
    | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | | | | +--- net.java.dev.jna:jna-platform:5.6.0
    | | | | | \--- net.java.dev.jna:jna:5.6.0
    | | | | \--- com.android.tools.analytics-library:protos:30.1.1
    | | | | \--- com.google.protobuf:protobuf-java:3.10.0
    | | | +--- com.sun.activation:javax.activation:1.2.0
    | | | +--- org.apache.commons:commons-compress:1.20
    | | | +--- org.glassfish.jaxb:jaxb-runtime:2.3.2 (*)
    | | | +--- com.google.jimfs:jimfs:1.1
    | | | | \--- com.google.guava:guava:18.0 -> 31.0.1-jre (*)
    | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | | +--- com.android.tools.build:builder-test-api:7.1.1
    | | | +--- com.android.tools.ddms:ddmlib:30.1.1
    | | | | +--- com.android.tools:common:30.1.1 (*)
    | | | | +--- net.sf.kxml:kxml2:2.3.0
    | | | | +--- com.google.protobuf:protobuf-java:3.10.0
    | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | | | +--- com.android.tools:annotations:30.1.1
    | | | +--- com.android.tools:common:30.1.1 (*)
    | | | \--- com.google.guava:guava:30.1-jre -> 31.0.1-jre (*)
    | | +--- com.android.tools.build:builder-model:7.1.1
    | | | +--- com.android.tools:annotations:30.1.1
    | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | | +--- com.android.tools.ddms:ddmlib:30.1.1 (*)
    | | +--- com.android.tools.layoutlib:layoutlib-api:30.1.1 (*)
    | | +--- com.android.tools:common:30.1.1 (*)
    | | +--- com.android.tools.analytics-library:shared:30.1.1 (*)
    | | +--- org.bouncycastle:bcpkix-jdk15on:1.56
    | | | \--- org.bouncycastle:bcprov-jdk15on:1.56
    | | +--- org.bouncycastle:bcprov-jdk15on:1.56
    | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | | +--- com.google.guava:guava:30.1-jre -> 31.0.1-jre (*)
    | | +--- org.glassfish.jaxb:jaxb-runtime:2.3.2 (*)
    | | +--- com.google.code.gson:gson:2.8.6 -> 2.8.9
    | | +--- org.jetbrains.kotlin:kotlin-reflect:1.4.32
    | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.4.32 -> 1.6.10 (*)
    | | +--- com.google.protobuf:protobuf-java:3.10.0
    | | +--- javax.inject:javax.inject:1
    | | +--- net.sf.kxml:kxml2:2.3.0
    | | +--- org.jetbrains.intellij.deps:trove4j:1.0.20181211
    | | +--- com.android.tools.build:aapt2-proto:7.0.0-beta04-7396180 -> 7.1.1-7984345
    | | | \--- com.google.protobuf:protobuf-java:3.10.0
    | | \--- xerces:xercesImpl:2.12.0
    | | \--- xml-apis:xml-apis:1.4.01
    | +--- com.android.tools:sdklib:30.1.1 (*)
    | +--- com.android.tools:repository:30.1.1 (*)
    | +--- com.android.tools.ddms:ddmlib:30.1.1 (*)
    | +--- com.android.tools.build:aapt2-proto:7.1.1-7984345 (*)
    | +--- com.android.tools.build:aaptcompiler:7.1.1
    | | +--- com.android.tools.build:aapt2-proto:7.1.1-7984345 (*)
    | | +--- com.android.tools.layoutlib:layoutlib-api:30.1.1 (*)
    | | +--- com.android.tools:common:30.1.1 (*)
    | | +--- com.google.protobuf:protobuf-java:3.10.0
    | | +--- com.google.guava:guava:30.1-jre -> 31.0.1-jre (*)
    | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | +--- com.android.tools.analytics-library:crash:30.1.1
    | | +--- com.android.tools:annotations:30.1.1
    | | +--- com.google.guava:guava:30.1-jre -> 31.0.1-jre (*)
    | | +--- org.apache.httpcomponents:httpmime:4.5.6 (*)
    | | +--- org.apache.httpcomponents:httpcore:4.4.10
    | | \--- org.apache.httpcomponents:httpclient:4.5.6 (*)
    | +--- com.android.tools.analytics-library:shared:30.1.1 (*)
    | +--- com.android.tools.lint:lint-model:30.1.1
    | | +--- com.android.tools:common:30.1.1 (*)
    | | +--- com.android.tools:sdk-common:30.1.1 (*)
    | | +--- com.android.tools.build:builder-model:7.1.1 (*)
    | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | | \--- net.sf.kxml:kxml2:2.3.0
    | +--- androidx.databinding:databinding-compiler-common:7.1.1
    | | +--- androidx.databinding:databinding-common:7.1.1
    | | +--- com.android.databinding:baseLibrary:7.1.1
    | | +--- org.antlr:antlr4:4.5.3
    | | +--- commons-io:commons-io:2.4
    | | +--- com.googlecode.juniversalchardet:juniversalchardet:1.0.3
    | | +--- com.google.guava:guava:30.1-jre -> 31.0.1-jre (*)
    | | +--- com.squareup:javapoet:1.10.0 -> 1.13.0
    | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | | +--- com.google.code.gson:gson:2.8.6 -> 2.8.9
    | | +--- org.glassfish.jaxb:jaxb-runtime:2.3.2 (*)
    | | +--- com.android.tools:annotations:30.1.1
    | | \--- com.android.tools.build.jetifier:jetifier-core:1.0.0-beta09
    | | +--- com.google.code.gson:gson:2.8.0 -> 2.8.9
    | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.60 -> 1.6.10 (*)
    | +--- androidx.databinding:databinding-common:7.1.1
    | +--- com.android.databinding:baseLibrary:7.1.1
    | +--- com.android.tools.build:builder-test-api:7.1.1 (*)
    | +--- com.android.tools.layoutlib:layoutlib-api:30.1.1 (*)
    | +--- com.android.tools.utp:android-device-provider-ddmlib-proto:30.1.1
    | | \--- com.google.protobuf:protobuf-java:3.10.0
    | +--- com.android.tools.utp:android-device-provider-gradle-proto:30.1.1
    | | \--- com.google.protobuf:protobuf-java:3.10.0
    | +--- com.android.tools.utp:android-test-plugin-host-additional-test-output-proto:30.1.1
    | | \--- com.google.protobuf:protobuf-java:3.10.0
    | +--- com.android.tools.utp:android-test-plugin-host-coverage-proto:30.1.1
    | | \--- com.google.protobuf:protobuf-java:3.10.0
    | +--- com.android.tools.utp:android-test-plugin-host-retention-proto:30.1.1
    | | +--- com.google.protobuf:protobuf-java:3.10.0
    | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | +--- com.android.tools.utp:android-test-plugin-result-listener-gradle-proto:30.1.1
    | | +--- com.google.code.gson:gson:2.8.6 -> 2.8.9
    | | +--- io.grpc:grpc-core:1.21.1
    | | | +--- io.opencensus:opencensus-api:0.21.0
    | | | +--- io.grpc:grpc-api:1.21.1
    | | | | +--- io.grpc:grpc-context:1.21.1
    | | | | +--- com.google.errorprone:error_prone_annotations:2.3.2 -> 2.7.1
    | | | | +--- com.google.code.findbugs:jsr305:3.0.2
    | | | | +--- org.codehaus.mojo:animal-sniffer-annotations:1.17
    | | | | \--- com.google.guava:guava:26.0-android -> 31.0.1-jre (*)
    | | | +--- com.google.code.gson:gson:2.7 -> 2.8.9
    | | | +--- com.google.android:annotations:4.1.1.4
    | | | \--- io.opencensus:opencensus-contrib-grpc-metrics:0.21.0
    | | | \--- io.opencensus:opencensus-api:0.21.0
    | | +--- io.grpc:grpc-netty:1.21.1
    | | | +--- io.grpc:grpc-core:1.21.1 (*)
    | | | +--- io.netty:netty-codec-http2:4.1.34.Final
    | | | | +--- io.netty:netty-common:4.1.34.Final
    | | | | +--- io.netty:netty-buffer:4.1.34.Final
    | | | | | \--- io.netty:netty-common:4.1.34.Final
    | | | | +--- io.netty:netty-transport:4.1.34.Final
    | | | | | +--- io.netty:netty-common:4.1.34.Final
    | | | | | +--- io.netty:netty-buffer:4.1.34.Final (*)
    | | | | | \--- io.netty:netty-resolver:4.1.34.Final
    | | | | | \--- io.netty:netty-common:4.1.34.Final
    | | | | +--- io.netty:netty-codec:4.1.34.Final
    | | | | | +--- io.netty:netty-common:4.1.34.Final
    | | | | | +--- io.netty:netty-buffer:4.1.34.Final (*)
    | | | | | \--- io.netty:netty-transport:4.1.34.Final (*)
    | | | | +--- io.netty:netty-handler:4.1.34.Final
    | | | | | +--- io.netty:netty-common:4.1.34.Final
    | | | | | +--- io.netty:netty-buffer:4.1.34.Final (*)
    | | | | | +--- io.netty:netty-transport:4.1.34.Final (*)
    | | | | | \--- io.netty:netty-codec:4.1.34.Final (*)
    | | | | \--- io.netty:netty-codec-http:4.1.34.Final
    | | | | +--- io.netty:netty-common:4.1.34.Final
    | | | | +--- io.netty:netty-buffer:4.1.34.Final (*)
    | | | | +--- io.netty:netty-transport:4.1.34.Final (*)
    | | | | +--- io.netty:netty-codec:4.1.34.Final (*)
    | | | | \--- io.netty:netty-handler:4.1.34.Final (*)
    | | | \--- io.netty:netty-handler-proxy:4.1.34.Final
    | | | +--- io.netty:netty-common:4.1.34.Final
    | | | +--- io.netty:netty-buffer:4.1.34.Final (*)
    | | | +--- io.netty:netty-transport:4.1.34.Final (*)
    | | | +--- io.netty:netty-codec:4.1.34.Final (*)
    | | | +--- io.netty:netty-codec-socks:4.1.34.Final
    | | | | +--- io.netty:netty-common:4.1.34.Final
    | | | | +--- io.netty:netty-buffer:4.1.34.Final (*)
    | | | | +--- io.netty:netty-transport:4.1.34.Final (*)
    | | | | \--- io.netty:netty-codec:4.1.34.Final (*)
    | | | \--- io.netty:netty-codec-http:4.1.34.Final (*)
    | | +--- io.grpc:grpc-protobuf:1.21.1
    | | | +--- io.grpc:grpc-api:1.21.1 (*)
    | | | +--- com.google.protobuf:protobuf-java:3.7.1 -> 3.10.0
    | | | +--- com.google.guava:guava:26.0-android -> 31.0.1-jre (*)
    | | | +--- com.google.api.grpc:proto-google-common-protos:1.12.0
    | | | \--- io.grpc:grpc-protobuf-lite:1.21.1
    | | | +--- io.grpc:grpc-api:1.21.1 (*)
    | | | \--- com.google.guava:guava:26.0-android -> 31.0.1-jre (*)
    | | +--- io.grpc:grpc-stub:1.21.1
    | | | \--- io.grpc:grpc-api:1.21.1 (*)
    | | +--- com.google.guava:guava:30.1-jre -> 31.0.1-jre (*)
    | | \--- com.google.protobuf:protobuf-java:3.10.0
    | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | +--- com.android.tools.build:transform-api:2.0.0-deprecated-use-gradle-api
    | +--- org.apache.httpcomponents:httpmime:4.5.6 (*)
    | +--- commons-io:commons-io:2.4
    | +--- org.ow2.asm:asm:9.1
    | +--- org.ow2.asm:asm-analysis:9.1
    | | \--- org.ow2.asm:asm-tree:9.1
    | | \--- org.ow2.asm:asm:9.1
    | +--- org.ow2.asm:asm-commons:9.1
    | | +--- org.ow2.asm:asm:9.1
    | | +--- org.ow2.asm:asm-tree:9.1 (*)
    | | \--- org.ow2.asm:asm-analysis:9.1 (*)
    | +--- org.ow2.asm:asm-util:9.1
    | | +--- org.ow2.asm:asm:9.1
    | | +--- org.ow2.asm:asm-tree:9.1 (*)
    | | \--- org.ow2.asm:asm-analysis:9.1 (*)
    | +--- org.bouncycastle:bcpkix-jdk15on:1.56 (*)
    | +--- org.glassfish.jaxb:jaxb-runtime:2.3.2 (*)
    | +--- net.sf.jopt-simple:jopt-simple:4.9
    | +--- com.android.tools.build:bundletool:1.8.0
    | | +--- com.android.tools.build:aapt2-proto:7.0.0-beta04-7396180 -> 7.1.1-7984345 (*)
    | | +--- com.google.auto.value:auto-value-annotations:1.6.2
    | | +--- com.google.errorprone:error_prone_annotations:2.3.1 -> 2.7.1
    | | +--- com.google.guava:guava:30.1-jre -> 31.0.1-jre (*)
    | | +--- com.google.protobuf:protobuf-java:3.10.0
    | | +--- com.google.protobuf:protobuf-java-util:3.10.0
    | | | +--- com.google.protobuf:protobuf-java:3.10.0
    | | | +--- com.google.guava:guava:28.0-android -> 31.0.1-jre (*)
    | | | +--- com.google.errorprone:error_prone_annotations:2.3.2 -> 2.7.1
    | | | \--- com.google.code.gson:gson:2.8.5 -> 2.8.9
    | | +--- com.google.dagger:dagger:2.28.3
    | | | \--- javax.inject:javax.inject:1
    | | +--- javax.inject:javax.inject:1
    | | +--- org.bitbucket.b_c:jose4j:0.7.0
    | | \--- org.slf4j:slf4j-api:1.7.30
    | +--- com.android.tools.build.jetifier:jetifier-core:1.0.0-beta09 (*)
    | +--- com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta09
    | | +--- com.android.tools.build.jetifier:jetifier-core:1.0.0-beta09 (*)
    | | +--- org.ow2.asm:asm:6.0 -> 9.1
    | | +--- org.ow2.asm:asm-util:6.0 -> 9.1 (*)
    | | +--- org.ow2.asm:asm-commons:6.0 -> 9.1 (*)
    | | +--- org.jdom:jdom2:2.0.6
    | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.60 -> 1.6.10 (*)
    | +--- com.squareup:javapoet:1.10.0 -> 1.13.0
    | +--- com.google.protobuf:protobuf-java:3.10.0
    | +--- com.google.protobuf:protobuf-java-util:3.10.0 (*)
    | +--- com.google.code.gson:gson:2.8.6 -> 2.8.9
    | +--- io.grpc:grpc-core:1.21.1 (*)
    | +--- io.grpc:grpc-netty:1.21.1 (*)
    | +--- io.grpc:grpc-protobuf:1.21.1 (*)
    | +--- io.grpc:grpc-stub:1.21.1 (*)
    | +--- com.google.crypto.tink:tink:1.3.0-rc2
    | | +--- com.google.protobuf:protobuf-java:3.10.0
    | | \--- org.json:json:20180813
    | +--- com.google.testing.platform:core-proto:0.0.8-alpha07
    | +--- org.jetbrains.dokka:dokka-core:1.4.32
    | | +--- org.jetbrains.kotlin:kotlin-reflect:1.4.32 (*)
    | | +--- org.jsoup:jsoup:1.13.1
    | | +--- com.fasterxml.jackson.module:jackson-module-kotlin:2.11.1
    | | | +--- com.fasterxml.jackson.core:jackson-databind:2.11.1
    | | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.11.1
    | | | | \--- com.fasterxml.jackson.core:jackson-core:2.11.1
    | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.11.1
    | | | \--- org.jetbrains.kotlin:kotlin-reflect:1.3.72 -> 1.4.32 (*)
    | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.11.1
    | | | +--- com.fasterxml.jackson.core:jackson-core:2.11.1
    | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.11.1
    | | | +--- com.fasterxml.jackson.core:jackson-databind:2.11.1 (*)
    | | | +--- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.11.1
    | | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.11.1
    | | | | +--- com.fasterxml.jackson.core:jackson-core:2.11.1
    | | | | +--- com.fasterxml.jackson.core:jackson-databind:2.11.1 (*)
    | | | | +--- jakarta.xml.bind:jakarta.xml.bind-api:2.3.2 (*)
    | | | | \--- jakarta.activation:jakarta.activation-api:1.2.1
    | | | +--- org.codehaus.woodstox:stax2-api:4.2.1
    | | | \--- com.fasterxml.woodstox:woodstox-core:6.2.1
    | | | \--- org.codehaus.woodstox:stax2-api:4.2.1
    | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.1
    | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.4.1
    | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.4.0 -> 1.6.10 (*)
    | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.0 -> 1.6.10
    | | +--- org.jetbrains:markdown:0.2.1
    | | | \--- org.jetbrains:markdown-jvm:0.2.1
    | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 1.6.10 (*)
    | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.10 -> 1.6.10
    | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | +--- com.google.flatbuffers:flatbuffers-java:1.12.0
    | +--- org.tensorflow:tensorflow-lite-metadata:0.1.0-rc2
    | | +--- org.checkerframework:checker-qual:2.5.8 -> 3.12.0
    | | \--- com.google.flatbuffers:flatbuffers-java:1.12.0
    | +--- com.android.tools.build:builder:7.1.1
    | | +--- com.android.tools.build:builder-model:7.1.1 (*)
    | | +--- com.android.tools.build:builder-test-api:7.1.1 (*)
    | | +--- com.android.tools:sdklib:30.1.1 (*)
    | | +--- com.android.tools:sdk-common:30.1.1 (*)
    | | +--- com.android.tools:common:30.1.1 (*)
    | | +--- com.android.tools.ddms:ddmlib:30.1.1 (*)
    | | +--- com.android:signflinger:7.1.1
    | | | +--- com.android.tools.build:apksig:7.1.1
    | | | +--- com.android:zipflinger:7.1.1
    | | | | \--- com.android.tools:annotations:30.1.1
    | | | \--- com.android.tools:annotations:30.1.1
    | | +--- com.android.tools.analytics-library:protos:30.1.1 (*)
    | | +--- com.android.tools.analytics-library:tracker:30.1.1
    | | | +--- com.android.tools:annotations:30.1.1
    | | | +--- com.android.tools:common:30.1.1 (*)
    | | | +--- com.google.protobuf:protobuf-java:3.10.0
    | | | +--- com.google.guava:guava:30.1-jre -> 31.0.1-jre (*)
    | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | | | +--- com.android.tools.analytics-library:protos:30.1.1 (*)
    | | | \--- com.android.tools.analytics-library:shared:30.1.1 (*)
    | | +--- com.android.tools.layoutlib:layoutlib-api:30.1.1 (*)
    | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | | +--- org.bouncycastle:bcpkix-jdk15on:1.56 (*)
    | | +--- commons-codec:commons-codec:1.10
    | | +--- org.bouncycastle:bcprov-jdk15on:1.56
    | | +--- org.ow2.asm:asm:9.1
    | | +--- org.ow2.asm:asm-tree:9.1 (*)
    | | +--- javax.inject:javax.inject:1
    | | +--- org.ow2.asm:asm-commons:9.1 (*)
    | | +--- org.ow2.asm:asm-util:9.1 (*)
    | | +--- it.unimi.dsi:fastutil:8.4.0
    | | +--- net.sf.jopt-simple:jopt-simple:4.9
    | | +--- com.googlecode.json-simple:json-simple:1.1
    | | +--- com.android.tools.build:manifest-merger:30.1.1
    | | | +--- com.android.tools:common:30.1.1 (*)
    | | | +--- com.android.tools:sdklib:30.1.1 (*)
    | | | +--- com.android.tools:sdk-common:30.1.1 (*)
    | | | +--- com.google.code.gson:gson:2.8.6 -> 2.8.9
    | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | | | \--- net.sf.kxml:kxml2:2.3.0
    | | +--- com.android:zipflinger:7.1.1 (*)
    | | +--- com.android.tools.build:apksig:7.1.1
    | | +--- com.android.tools.build:apkzlib:7.1.1
    | | | +--- com.google.code.findbugs:jsr305:1.3.9 -> 3.0.2
    | | | +--- com.google.guava:guava:23.0 -> 31.0.1-jre (*)
    | | | +--- org.bouncycastle:bcpkix-jdk15on:1.56 (*)
    | | | +--- org.bouncycastle:bcprov-jdk15on:1.56
    | | | \--- com.android.tools.build:apksig:7.1.1
    | | \--- com.squareup:javawriter:2.5.0
    | +--- com.android.tools.build:builder-model:7.1.1 (*)
    | \--- com.android.tools.build:gradle-api:7.1.1
    | +--- com.android.tools.build:builder-test-api:7.1.1 (*)
    | +--- com.google.guava:guava:30.1-jre -> 31.0.1-jre (*)
    | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | \--- org.ow2.asm:asm:9.1
    +--- com.facebook.react:react-native-gradle-plugin -> project :react-native-gradle-plugin
    | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 (*)
    | +--- com.android.tools.build:gradle:7.0.4 -> 7.1.1 (*)
    | +--- com.google.code.gson:gson:2.8.9
    | +--- com.google.guava:guava:31.0.1-jre (*)
    | \--- com.squareup:javapoet:1.13.0
    +--- de.undercouch:gradle-download-task:5.0.1
    \--- com.google.gms:google-services:4.3.13
    +--- com.google.android.gms:strict-version-matcher-plugin:1.2.4
    | +--- com.google.code.findbugs:jsr305:3.0.2
    | +--- com.google.guava:guava:27.0.1-jre -> 31.0.1-jre (*)
    | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.10 -> 1.6.10 (*)
    +--- com.google.code.gson:gson:2.8.5 -> 2.8.9
    \--- com.google.guava:guava:27.0.1-jre -> 31.0.1-jre (*)

    (*) - dependencies omitted (listed previously)

    A web-based, searchable dependency report is available by adding the --scan option.
    w: Detected multiple Kotlin daemon sessions at build/kotlin/sessions

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

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

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

    BUILD SUCCESSFUL in 1m 4s
    7 actionable tasks: 1 executed, 6 up-to-date
  2. stevoland revised this gist Apr 25, 2023. 1 changed file with 393 additions and 0 deletions.
    393 changes: 393 additions & 0 deletions app-build.gradle
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,393 @@
    plugins {
    id "io.sentry.android.gradle" version "2.1.5" apply false
    id("com.datadoghq.dd-sdk-android-gradle-plugin") version "1.8.+"
    }
    def is_ci_from_properties = project.getProperties().get("is_ci").toString()

    def is_ci = is_ci_from_properties.contentEquals("true")
    // sentry will fail the build on local dev machines if plugin is applied
    if(is_ci) {
    apply plugin: "io.sentry.android.gradle"
    }

    datadog {
    checkProjectDependencies = "none"
    serviceName = "native"
    mappingFilePath = "build/mapping.txt"
    }

    apply plugin: "com.android.application"
    apply plugin: 'com.google.gms.google-services'

    // flavor+buildType specific env files - keys need to be "$flavor$buildType".toLowerCase()
    project.ext.envConfigFiles = [
    dev: ".env",
    staging: ".env.staging",
    bugbounty: ".env.bugbounty",
    sandbox: ".env.sandbox",
    production: ".env.prod",
    store: ".env.prod",
    ]
    apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"

    import com.android.build.OutputFile

    project.ext.react = [
    bundleInDebug: false,
    enableHermes: true, // clean and rebuild if changing
    hermesFlagsRelease: ["-O", "-output-source-map"],
    ]

    apply from: "../../node_modules/react-native/react.gradle"

    if(is_ci) {
    apply from: "../../node_modules/@sentry/react-native/sentry.gradle"
    }

    def ENV = System.getenv()

    /**
    * Browserstack's network loggging uses a MITM proxy so a custom
    * config without cert pinning is required
    */
    def releaseNetworkSecurityConfig = project.env.get("IS_TESTING") == 'true' ? '@xml/network_security_config_browserstack' : '@xml/network_security_config'

    /**
    * Set this to true to create two separate APKs instead of one:
    * - An APK that only works on ARM devices
    * - An APK that only works on x86 devices
    * The advantage is the size of the APK is reduced by about 4MB.
    * Upload all the APKs to the Play Store and people will download
    * the correct one based on the CPU architecture of their device.
    */
    def enableSeparateBuildPerCPUArchitecture = ENV['ENABLE_ABI_SPLITS'] ? ENV['ENABLE_ABI_SPLITS'].toBoolean() : false

    /**
    * Run Proguard to shrink the Java bytecode in release builds.
    */
    def enableProguardInReleaseBuilds = true

    /**
    * The preferred build flavor of JavaScriptCore.
    *
    * For example, to use the international variant, you can use:
    * `def jscFlavor = 'org.webkit:android-jsc-intl:+'`
    *
    * The international variant includes ICU i18n library and necessary data
    * allowing to use e.g. `Date.toLocaleString` and `String.localeCompare` that
    * give correct results when using with locales other than en-US. Note that
    * this variant is about 6MiB larger per architecture than default.
    */
    def jscFlavor = 'org.webkit:android-jsc:+'

    /**
    * Whether to enable the Hermes VM.
    *
    * This should be set on project.ext.react and that value will be read here. If it is not set
    * on project.ext.react, JavaScript will not be compiled to Hermes Bytecode
    * and the benefits of using Hermes will therefore be sharply reduced.
    */
    def enableHermes = project.ext.react.get("enableHermes", false);

    /**
    * Architectures to build native code for.
    */
    def reactNativeArchitectures() {
    def value = project.getProperties().get("reactNativeArchitectures")
    return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
    }

    repositories {
    google()
    mavenLocal()
    mavenCentral()
    }

    android {
    ndkVersion rootProject.ext.ndkVersion

    compileSdkVersion rootProject.ext.compileSdkVersion

    defaultConfig {
    applicationId "uk.co.mettle"
    minSdkVersion rootProject.ext.minSdkVersion
    targetSdkVersion rootProject.ext.targetSdkVersion
    versionCode 77163
    versionName "2.70.0"
    multiDexEnabled true
    buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
    resValue "string", "build_config_package", "uk.co.mettle" // for react-native-config

    if (isNewArchitectureEnabled()) {
    // We configure the NDK build only if you decide to opt-in for the New Architecture.
    externalNativeBuild {
    ndkBuild {
    arguments "APP_PLATFORM=android-21",
    "APP_STL=c++_shared",
    "NDK_TOOLCHAIN_VERSION=clang",
    "GENERATED_SRC_DIR=$buildDir/generated/source",
    "PROJECT_BUILD_DIR=$buildDir",
    "REACT_ANDROID_DIR=$rootDir/../node_modules/react-native/ReactAndroid",
    "REACT_ANDROID_BUILD_DIR=$rootDir/../node_modules/react-native/ReactAndroid/build",
    "NODE_MODULES_DIR=$rootDir/../node_modules"
    cFlags "-Wall", "-Werror", "-fexceptions", "-frtti", "-DWITH_INSPECTOR=1"
    cppFlags "-std=c++17"
    // Make sure this target name is the same you specify inside the
    // src/main/jni/Android.mk file for the `LOCAL_MODULE` variable.
    targets "mettle_appmodules"
    }
    }
    if (!enableSeparateBuildPerCPUArchitecture) {
    ndk {
    abiFilters (*reactNativeArchitectures())
    }
    }
    }
    }

    if (isNewArchitectureEnabled()) {
    // We configure the NDK build only if you decide to opt-in for the New Architecture.
    externalNativeBuild {
    ndkBuild {
    path "$projectDir/src/main/jni/Android.mk"
    }
    }
    def reactAndroidProjectDir = project(':ReactAndroid').projectDir
    def packageReactNdkDebugLibs = tasks.register("packageReactNdkDebugLibs", Copy) {
    dependsOn(":ReactAndroid:packageReactNdkDebugLibsForBuck")
    from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
    into("$buildDir/react-ndk/exported")
    }
    def packageReactNdkReleaseLibs = tasks.register("packageReactNdkReleaseLibs", Copy) {
    dependsOn(":ReactAndroid:packageReactNdkReleaseLibsForBuck")
    from("$reactAndroidProjectDir/src/main/jni/prebuilt/lib")
    into("$buildDir/react-ndk/exported")
    }
    afterEvaluate {
    // If you wish to add a custom TurboModule or component locally,
    // you should uncomment this line.
    // preBuild.dependsOn("generateCodegenArtifactsFromSchema")
    preDebugBuild.dependsOn(packageReactNdkDebugLibs)
    preReleaseBuild.dependsOn(packageReactNdkReleaseLibs)

    // Due to a bug inside AGP, we have to explicitly set a dependency
    // between configureNdkBuild* tasks and the preBuild tasks.
    // This can be removed once this is solved: https://issuetracker.google.com/issues/207403732
    configureNdkBuildRelease.dependsOn(preReleaseBuild)
    configureNdkBuildDebug.dependsOn(preDebugBuild)
    reactNativeArchitectures().each { architecture ->
    tasks.findByName("configureNdkBuildDebug[${architecture}]")?.configure {
    dependsOn("preDebugBuild")
    }
    tasks.findByName("configureNdkBuildRelease[${architecture}]")?.configure {
    dependsOn("preReleaseBuild")
    }
    }
    }
    }

    splits {
    abi {
    reset()
    enable enableSeparateBuildPerCPUArchitecture
    universalApk true // If true, also generate a universal APK
    include (*reactNativeArchitectures())
    }
    }
    buildTypes {
    debug {
    minifyEnabled false
    debuggable true
    proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro", "proguard-rules-debug.pro"
    }
    release {
    minifyEnabled enableProguardInReleaseBuilds
    debuggable false
    proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro", "proguard-rules-release.pro"
    signingConfig signingConfigs.release
    }
    }

    flavorDimensions "main"
    productFlavors {
    dev {
    dimension "main"
    manifestPlaceholders = [
    appName: "Mettle Dev",
    urlScheme: "mettle-dev",
    universalUrlPath: "dev/",
    releaseNetworkSecurityConfig: releaseNetworkSecurityConfig
    ]
    applicationIdSuffix ".dev"
    }
    staging {
    dimension "main"
    manifestPlaceholders = [
    appName: "Mettle Staging",
    urlScheme: "mettle-staging",
    universalUrlPath: "staging/",
    releaseNetworkSecurityConfig: releaseNetworkSecurityConfig
    ]
    applicationIdSuffix ".staging"
    }
    sandbox {
    dimension "main"
    manifestPlaceholders = [
    appName: "Mettle Sandbox",
    urlScheme: "mettle-sandbox",
    universalUrlPath: "sandbox/",
    releaseNetworkSecurityConfig: releaseNetworkSecurityConfig
    ]
    applicationIdSuffix ".sandbox"
    }
    bugbounty {
    dimension "main"
    manifestPlaceholders = [
    appName: "Mettle BBP",
    urlScheme: "mettle",
    universalUrlPath: "",
    releaseNetworkSecurityConfig: releaseNetworkSecurityConfig
    ]
    applicationIdSuffix ".app"
    versionNameSuffix ".bbp"
    }
    production {
    dimension "main"
    manifestPlaceholders = [
    appName: "Mettle Internal",
    urlScheme: "mettle",
    universalUrlPath: "",
    releaseNetworkSecurityConfig: releaseNetworkSecurityConfig
    ]
    applicationIdSuffix ".app"
    }
    store {
    dimension "main"
    manifestPlaceholders = [
    appName: "Mettle",
    urlScheme: "mettle",
    universalUrlPath: "",
    releaseNetworkSecurityConfig: releaseNetworkSecurityConfig
    ]
    applicationIdSuffix ".app"
    }
    }

    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
    variant.outputs.each { output ->
    // Legacy version override, we used to set unique version for each separate APK architecture.
    // We want to set a single version for AAB build going forward.
    // It should be higher than the previous build uploaded to the Play Store and incremental.
    output.versionCodeOverride = 4 * 1048576 + defaultConfig.versionCode
    }
    }

    // Required by https://github.com/wonday/react-native-pdf
    packagingOptions {
    pickFirst 'lib/x86/libc++_shared.so'
    pickFirst 'lib/x86_64/libjsc.so'
    pickFirst 'lib/arm64-v8a/libjsc.so'
    pickFirst 'lib/arm64-v8a/libc++_shared.so'
    pickFirst 'lib/x86_64/libc++_shared.so'
    pickFirst 'lib/armeabi-v7a/libc++_shared.so'
    }
    }

    dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])

    //noinspection GradleDynamicVersion
    implementation "com.facebook.react:react-native:+" // From node_modules

    implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.0.0"

    implementation "androidx.multidex:multidex:2.0.1"
    implementation 'com.madgag.spongycastle:bcpkix-jdk15on:1.58.0.0'
    implementation 'com.madgag.spongycastle:bcpg-jdk15on:1.58.0.0'
    implementation 'com.onfido.sdk.capture:onfido-capture-sdk:12.1.0'
    implementation 'com.squareup.okhttp3:logging-interceptor:3.11.0'
    implementation 'android.arch.lifecycle:extensions:1.1.1'
    implementation 'androidx.biometric:biometric:1.0.1'
    implementation "androidx.security:security-crypto:1.0.0-alpha02"

    if(is_ci){
    implementation project(':@sentry_react-native')
    }


    // Required for SMS Verify in SMS OTP Auto-Entry Feature
    implementation 'com.google.android.gms:play-services-auth:19.0.0'
    implementation 'com.google.android.gms:play-services-auth-api-phone:17.5.0'

    // Required for branch
    implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1'

    // Play core required for in app reviews
    implementation 'com.google.android.play:core:1.9.0'

    // Import the Google Pay Push Provisioning SDK from android/app/libs/
    implementation(name:'play-services-tapandpay-17.0.1', ext:'aar')

    // Used by PushNotificationListener.java
    implementation 'com.google.firebase:firebase-messaging:21.1.0'

    androidTestImplementation 'androidx.test:runner:1.2.0'
    androidTestImplementation 'androidx.test:rules:1.2.0'
    androidTestImplementation 'org.hamcrest:hamcrest-library:1.3'

    debugImplementation("com.facebook.flipper:flipper:${FLIPPER_VERSION}") {
    exclude group:'com.facebook.fbjni'
    }

    debugImplementation("com.facebook.flipper:flipper-network-plugin:${FLIPPER_VERSION}") {
    exclude group:'com.facebook.flipper'
    exclude group:'com.squareup.okhttp3', module:'okhttp'
    }

    debugImplementation("com.facebook.flipper:flipper-fresco-plugin:${FLIPPER_VERSION}") {
    exclude group:'com.facebook.flipper'
    }

    if (enableHermes) {
    //noinspection GradleDynamicVersion
    implementation("com.facebook.react:hermes-engine:+") { // From node_modules
    exclude group:'com.facebook.fbjni'
    }
    } else {
    implementation jscFlavor
    }
    }

    if (isNewArchitectureEnabled()) {
    // If new architecture is enabled, we let you build RN from source
    // Otherwise we fallback to a prebuilt .aar bundled in the NPM package.
    // This will be applied to all the imported transtitive dependency.
    configurations.all {
    resolutionStrategy.dependencySubstitution {
    substitute(module("com.facebook.react:react-native"))
    .using(project(":ReactAndroid"))
    .because("On New Architecture we're building React Native from source")
    substitute(module("com.facebook.react:hermes-engine"))
    .using(project(":ReactAndroid:hermes-engine"))
    .because("On New Architecture we're building Hermes from source")
    }
    }
    }

    // Run this once to be able to run the application with BUCK
    // puts all compile dependencies into folder libs for BUCK to use
    task copyDownloadableDepsToLibs(type: Copy) {
    from configurations.implementation
    into 'libs'
    }

    apply from: file("../../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesAppBuildGradle(project)

    def isNewArchitectureEnabled() {
    // To opt-in for the New Architecture, you can either:
    // - Set `newArchEnabled` to true inside the `gradle.properties` file
    // - Invoke gradle with `-newArchEnabled=true`
    // - Set an environment variable `ORG_GRADLE_PROJECT_newArchEnabled=true`
    return project.hasProperty("newArchEnabled") && project.newArchEnabled == "true"
    }
  3. stevoland revised this gist Apr 25, 2023. 1 changed file with 563 additions and 0 deletions.
    563 changes: 563 additions & 0 deletions gradlew buildEnvironment
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,563 @@
    $ ./gradlew buildEnvironment
    To honour the JVM settings for this build a single-use Daemon process will be forked. See https://docs.gradle.org/7.3.3/userguide/gradle_daemon.html#sec:disabling_the_daemon.
    Daemon will be stopped at the end of the build

    > Configure project :@sentry_react-native
    WARNING:The option 'android.useDeprecatedNdk' is deprecated.
    The current default is 'false'.
    It has been removed from the current version of the Android Gradle plugin.
    NdkCompile is no longer supported
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :adrianso_react-native-device-brightness
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :app
    Reading env from: .env
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.
    Minifying disabled for variant devDebug, no upload task created
    Minifying disabled for variant stagingDebug, no upload task created
    Minifying disabled for variant sandboxDebug, no upload task created
    Minifying disabled for variant bugbountyDebug, no upload task created
    Minifying disabled for variant productionDebug, no upload task created
    Minifying disabled for variant storeDebug, no upload task created

    > Configure project :datadog_mobile-react-native
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :intercom_intercom-react-native
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :lottie-react-native
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.
    WARNING:Software Components will not be created automatically for Maven publishing from Android Gradle Plugin 8.0. To opt-in to the future behavior, set the Gradle property android.disableAutomaticComponentCreation=true in the `gradle.properties` file or use the new publishing DSL.

    > Configure project :react-native-blob-util
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.
    WARNING:Software Components will not be created automatically for Maven publishing from Android Gradle Plugin 8.0. To opt-in to the future behavior, set the Gradle property android.disableAutomaticComponentCreation=true in the `gradle.properties` file or use the new publishing DSL.

    > Configure project :react-native-branch
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-clipboard_clipboard
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-community_async-storage
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-community_datetimepicker
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-community_netinfo
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-community_slider
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-config
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-device-info
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-document-picker
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-firebase_analytics
    :react-native-firebase_analytics package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/analytics/package.json
    :react-native-firebase_app package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/app/package.json
    :react-native-firebase_analytics:firebase.bom using default value: 30.1.0
    :react-native-firebase_analytics package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/analytics/package.json
    :react-native-firebase_analytics:version set from package.json: 14.11.1 (14,11,1 - 14011001)
    :react-native-firebase_analytics:android.compileSdk using custom value: 31
    :react-native-firebase_analytics:android.targetSdk using custom value: 31
    :react-native-firebase_analytics:android.minSdk using custom value: 24
    :react-native-firebase_analytics:reactNativeAndroidDir /home/circleci/mettle/node_modules/react-native/android
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-firebase_app
    :react-native-firebase_app package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/app/package.json
    :react-native-firebase_app:firebase.bom using default value: 30.1.0
    :react-native-firebase_app:play.play-services-auth using default value: 20.2.0
    :react-native-firebase_app package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/app/package.json
    :react-native-firebase_app:version set from package.json: 14.11.1 (14,11,1 - 14011001)
    :react-native-firebase_app:android.compileSdk using custom value: 31
    :react-native-firebase_app:android.targetSdk using custom value: 31
    :react-native-firebase_app:android.minSdk using custom value: 24
    :react-native-firebase_app:reactNativeAndroidDir /home/circleci/mettle/node_modules/react-native/android
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-firebase_messaging
    :react-native-firebase_messaging package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/messaging/package.json
    :react-native-firebase_app package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/app/package.json
    :react-native-firebase_messaging:firebase.bom using default value: 30.1.0
    :react-native-firebase_messaging package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/messaging/package.json
    :react-native-firebase_messaging:version set from package.json: 14.11.1 (14,11,1 - 14011001)
    :react-native-firebase_messaging:android.compileSdk using custom value: 31
    :react-native-firebase_messaging:android.targetSdk using custom value: 31
    :react-native-firebase_messaging:android.minSdk using custom value: 24
    :react-native-firebase_messaging:reactNativeAndroidDir /home/circleci/mettle/node_modules/react-native/android
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-firebase_remote-config
    :react-native-firebase_remote-config package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/remote-config/package.json
    :react-native-firebase_app package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/app/package.json
    :react-native-firebase_remote-config:firebase.bom using default value: 30.1.0
    :react-native-firebase_remote-config package.json found at /home/circleci/mettle/node_modules/@react-native-firebase/remote-config/package.json
    :react-native-firebase_remote-config:version set from package.json: 14.11.1 (14,11,1 - 14011001)
    :react-native-firebase_remote-config:android.compileSdk using custom value: 31
    :react-native-firebase_remote-config:android.targetSdk using custom value: 31
    :react-native-firebase_remote-config:android.minSdk using custom value: 24
    :react-native-firebase_remote-config:reactNativeAndroidDir /home/circleci/mettle/node_modules/react-native/android
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-flipper
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.
    WARNING:Software Components will not be created automatically for Maven publishing from Android Gradle Plugin 8.0. To opt-in to the future behavior, set the Gradle property android.disableAutomaticComponentCreation=true in the `gradle.properties` file or use the new publishing DSL.

    > Configure project :react-native-flipper-performance-plugin
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-fs
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-gesture-handler
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-get-random-values
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-haptic-feedback
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-pdf
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-push-notification
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-reanimated
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.
    WARNING:Software Components will not be created automatically for Maven publishing from Android Gradle Plugin 8.0. To opt-in to the future behavior, set the Gradle property android.disableAutomaticComponentCreation=true in the `gradle.properties` file or use the new publishing DSL.

    > Configure project :react-native-restart
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-safe-area-context
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-screens
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-svg
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :react-native-webview
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :sentry_react-native
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    > Configure project :shopify_flash-list
    WARNING:Using flatDir should be avoided because it doesn't support any meta-data formats.

    The Kotlin Gradle plugin was loaded multiple times in different subprojects, which is not supported and may break the build.
    This might happen in subprojects that apply the Kotlin plugins with the Gradle 'plugins { ... }' DSL if they specify explicit versions, even if the versions are equal.
    Please add the Kotlin plugin to the common parent project or the root project, then remove the versions in the subprojects.
    If the parent project does not need the plugin, add 'apply false' to the plugin line.
    See: https://docs.gradle.org/current/userguide/plugins.html#sec:subprojects_plugins_dsl
    The Kotlin plugin was loaded in the following projects: ':datadog_mobile-react-native', ':react-native-safe-area-context', ':react-native-screens', ':react-native-webview'

    > Task :buildEnvironment

    ------------------------------------------------------------
    Root project 'eevee'
    ------------------------------------------------------------

    classpath
    +--- com.android.tools.build:gradle:7.1.1
    | +--- com.android.tools:sdk-common:30.1.1
    | | +--- com.android.tools:sdklib:30.1.1
    | | | +--- com.android.tools.layoutlib:layoutlib-api:30.1.1
    | | | | +--- com.android.tools:common:30.1.1
    | | | | | +--- com.android.tools:annotations:30.1.1
    | | | | | +--- com.google.guava:guava:30.1-jre -> 31.0.1-jre
    | | | | | | +--- com.google.guava:failureaccess:1.0.1
    | | | | | | +--- com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava
    | | | | | | +--- com.google.code.findbugs:jsr305:3.0.2
    | | | | | | +--- org.checkerframework:checker-qual:3.12.0
    | | | | | | +--- com.google.errorprone:error_prone_annotations:2.7.1
    | | | | | | \--- com.google.j2objc:j2objc-annotations:1.3
    | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10
    | | | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10
    | | | | | | +--- org.jetbrains:annotations:13.0
    | | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.6.10
    | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk7:1.6.10
    | | | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.6.10 (*)
    | | | | +--- net.sf.kxml:kxml2:2.3.0
    | | | | +--- com.android.tools:annotations:30.1.1
    | | | | \--- org.jetbrains:annotations:13.0
    | | | +--- com.android.tools:dvlib:30.1.1
    | | | | \--- com.android.tools:common:30.1.1 (*)
    | | | +--- com.android.tools:common:30.1.1 (*)
    | | | +--- com.google.code.gson:gson:2.8.6 -> 2.8.9
    | | | +--- org.glassfish.jaxb:jaxb-runtime:2.3.2
    | | | | +--- jakarta.xml.bind:jakarta.xml.bind-api:2.3.2
    | | | | | \--- jakarta.activation:jakarta.activation-api:1.2.1
    | | | | +--- org.glassfish.jaxb:txw2:2.3.2
    | | | | +--- com.sun.istack:istack-commons-runtime:3.0.8
    | | | | | \--- jakarta.activation:jakarta.activation-api:1.2.1
    | | | | +--- org.jvnet.staxex:stax-ex:1.8.1
    | | | | | +--- jakarta.activation:jakarta.activation-api:1.2.1
    | | | | | \--- jakarta.xml.bind:jakarta.xml.bind-api:2.3.2 (*)
    | | | | +--- com.sun.xml.fastinfoset:FastInfoset:1.2.16
    | | | | \--- jakarta.activation:jakarta.activation-api:1.2.1
    | | | +--- org.apache.commons:commons-compress:1.20
    | | | +--- org.apache.httpcomponents:httpmime:4.5.6
    | | | | \--- org.apache.httpcomponents:httpclient:4.5.6
    | | | | +--- org.apache.httpcomponents:httpcore:4.4.10
    | | | | +--- commons-logging:commons-logging:1.2
    | | | | \--- commons-codec:commons-codec:1.10
    | | | +--- org.apache.httpcomponents:httpcore:4.4.10
    | | | \--- com.android.tools:repository:30.1.1
    | | | +--- com.android.tools:common:30.1.1 (*)
    | | | +--- com.android.tools.analytics-library:shared:30.1.1
    | | | | +--- com.android.tools:annotations:30.1.1
    | | | | +--- com.android.tools:common:30.1.1 (*)
    | | | | +--- com.google.guava:guava:30.1-jre -> 31.0.1-jre (*)
    | | | | +--- com.google.code.gson:gson:2.8.6 -> 2.8.9
    | | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | | | | +--- net.java.dev.jna:jna-platform:5.6.0
    | | | | | \--- net.java.dev.jna:jna:5.6.0
    | | | | \--- com.android.tools.analytics-library:protos:30.1.1
    | | | | \--- com.google.protobuf:protobuf-java:3.10.0
    | | | +--- com.sun.activation:javax.activation:1.2.0
    | | | +--- org.apache.commons:commons-compress:1.20
    | | | +--- org.glassfish.jaxb:jaxb-runtime:2.3.2 (*)
    | | | +--- com.google.jimfs:jimfs:1.1
    | | | | \--- com.google.guava:guava:18.0 -> 31.0.1-jre (*)
    | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | | +--- com.android.tools.build:builder-test-api:7.1.1
    | | | +--- com.android.tools.ddms:ddmlib:30.1.1
    | | | | +--- com.android.tools:common:30.1.1 (*)
    | | | | +--- net.sf.kxml:kxml2:2.3.0
    | | | | +--- com.google.protobuf:protobuf-java:3.10.0
    | | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | | | +--- com.android.tools:annotations:30.1.1
    | | | +--- com.android.tools:common:30.1.1 (*)
    | | | \--- com.google.guava:guava:30.1-jre -> 31.0.1-jre (*)
    | | +--- com.android.tools.build:builder-model:7.1.1
    | | | +--- com.android.tools:annotations:30.1.1
    | | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | | +--- com.android.tools.ddms:ddmlib:30.1.1 (*)
    | | +--- com.android.tools.layoutlib:layoutlib-api:30.1.1 (*)
    | | +--- com.android.tools:common:30.1.1 (*)
    | | +--- com.android.tools.analytics-library:shared:30.1.1 (*)
    | | +--- org.bouncycastle:bcpkix-jdk15on:1.56
    | | | \--- org.bouncycastle:bcprov-jdk15on:1.56
    | | +--- org.bouncycastle:bcprov-jdk15on:1.56
    | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | | +--- com.google.guava:guava:30.1-jre -> 31.0.1-jre (*)
    | | +--- org.glassfish.jaxb:jaxb-runtime:2.3.2 (*)
    | | +--- com.google.code.gson:gson:2.8.6 -> 2.8.9
    | | +--- org.jetbrains.kotlin:kotlin-reflect:1.4.32
    | | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.4.32 -> 1.6.10 (*)
    | | +--- com.google.protobuf:protobuf-java:3.10.0
    | | +--- javax.inject:javax.inject:1
    | | +--- net.sf.kxml:kxml2:2.3.0
    | | +--- org.jetbrains.intellij.deps:trove4j:1.0.20181211
    | | +--- com.android.tools.build:aapt2-proto:7.0.0-beta04-7396180 -> 7.1.1-7984345
    | | | \--- com.google.protobuf:protobuf-java:3.10.0
    | | \--- xerces:xercesImpl:2.12.0
    | | \--- xml-apis:xml-apis:1.4.01
    | +--- com.android.tools:sdklib:30.1.1 (*)
    | +--- com.android.tools:repository:30.1.1 (*)
    | +--- com.android.tools.ddms:ddmlib:30.1.1 (*)
    | +--- com.android.tools.build:aapt2-proto:7.1.1-7984345 (*)
    | +--- com.android.tools.build:aaptcompiler:7.1.1
    | | +--- com.android.tools.build:aapt2-proto:7.1.1-7984345 (*)
    | | +--- com.android.tools.layoutlib:layoutlib-api:30.1.1 (*)
    | | +--- com.android.tools:common:30.1.1 (*)
    | | +--- com.google.protobuf:protobuf-java:3.10.0
    | | +--- com.google.guava:guava:30.1-jre -> 31.0.1-jre (*)
    | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | +--- com.android.tools.analytics-library:crash:30.1.1
    | | +--- com.android.tools:annotations:30.1.1
    | | +--- com.google.guava:guava:30.1-jre -> 31.0.1-jre (*)
    | | +--- org.apache.httpcomponents:httpmime:4.5.6 (*)
    | | +--- org.apache.httpcomponents:httpcore:4.4.10
    | | \--- org.apache.httpcomponents:httpclient:4.5.6 (*)
    | +--- com.android.tools.analytics-library:shared:30.1.1 (*)
    | +--- com.android.tools.lint:lint-model:30.1.1
    | | +--- com.android.tools:common:30.1.1 (*)
    | | +--- com.android.tools:sdk-common:30.1.1 (*)
    | | +--- com.android.tools.build:builder-model:7.1.1 (*)
    | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | | \--- net.sf.kxml:kxml2:2.3.0
    | +--- androidx.databinding:databinding-compiler-common:7.1.1
    | | +--- androidx.databinding:databinding-common:7.1.1
    | | +--- com.android.databinding:baseLibrary:7.1.1
    | | +--- org.antlr:antlr4:4.5.3
    | | +--- commons-io:commons-io:2.4
    | | +--- com.googlecode.juniversalchardet:juniversalchardet:1.0.3
    | | +--- com.google.guava:guava:30.1-jre -> 31.0.1-jre (*)
    | | +--- com.squareup:javapoet:1.10.0 -> 1.13.0
    | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | | +--- com.google.code.gson:gson:2.8.6 -> 2.8.9
    | | +--- org.glassfish.jaxb:jaxb-runtime:2.3.2 (*)
    | | +--- com.android.tools:annotations:30.1.1
    | | \--- com.android.tools.build.jetifier:jetifier-core:1.0.0-beta09
    | | +--- com.google.code.gson:gson:2.8.0 -> 2.8.9
    | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.60 -> 1.6.10 (*)
    | +--- androidx.databinding:databinding-common:7.1.1
    | +--- com.android.databinding:baseLibrary:7.1.1
    | +--- com.android.tools.build:builder-test-api:7.1.1 (*)
    | +--- com.android.tools.layoutlib:layoutlib-api:30.1.1 (*)
    | +--- com.android.tools.utp:android-device-provider-ddmlib-proto:30.1.1
    | | \--- com.google.protobuf:protobuf-java:3.10.0
    | +--- com.android.tools.utp:android-device-provider-gradle-proto:30.1.1
    | | \--- com.google.protobuf:protobuf-java:3.10.0
    | +--- com.android.tools.utp:android-test-plugin-host-additional-test-output-proto:30.1.1
    | | \--- com.google.protobuf:protobuf-java:3.10.0
    | +--- com.android.tools.utp:android-test-plugin-host-coverage-proto:30.1.1
    | | \--- com.google.protobuf:protobuf-java:3.10.0
    | +--- com.android.tools.utp:android-test-plugin-host-retention-proto:30.1.1
    | | +--- com.google.protobuf:protobuf-java:3.10.0
    | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | +--- com.android.tools.utp:android-test-plugin-result-listener-gradle-proto:30.1.1
    | | +--- com.google.code.gson:gson:2.8.6 -> 2.8.9
    | | +--- io.grpc:grpc-core:1.21.1
    | | | +--- io.opencensus:opencensus-api:0.21.0
    | | | +--- io.grpc:grpc-api:1.21.1
    | | | | +--- io.grpc:grpc-context:1.21.1
    | | | | +--- com.google.errorprone:error_prone_annotations:2.3.2 -> 2.7.1
    | | | | +--- com.google.code.findbugs:jsr305:3.0.2
    | | | | +--- org.codehaus.mojo:animal-sniffer-annotations:1.17
    | | | | \--- com.google.guava:guava:26.0-android -> 31.0.1-jre (*)
    | | | +--- com.google.code.gson:gson:2.7 -> 2.8.9
    | | | +--- com.google.android:annotations:4.1.1.4
    | | | \--- io.opencensus:opencensus-contrib-grpc-metrics:0.21.0
    | | | \--- io.opencensus:opencensus-api:0.21.0
    | | +--- io.grpc:grpc-netty:1.21.1
    | | | +--- io.grpc:grpc-core:1.21.1 (*)
    | | | +--- io.netty:netty-codec-http2:4.1.34.Final
    | | | | +--- io.netty:netty-common:4.1.34.Final
    | | | | +--- io.netty:netty-buffer:4.1.34.Final
    | | | | | \--- io.netty:netty-common:4.1.34.Final
    | | | | +--- io.netty:netty-transport:4.1.34.Final
    | | | | | +--- io.netty:netty-common:4.1.34.Final
    | | | | | +--- io.netty:netty-buffer:4.1.34.Final (*)
    | | | | | \--- io.netty:netty-resolver:4.1.34.Final
    | | | | | \--- io.netty:netty-common:4.1.34.Final
    | | | | +--- io.netty:netty-codec:4.1.34.Final
    | | | | | +--- io.netty:netty-common:4.1.34.Final
    | | | | | +--- io.netty:netty-buffer:4.1.34.Final (*)
    | | | | | \--- io.netty:netty-transport:4.1.34.Final (*)
    | | | | +--- io.netty:netty-handler:4.1.34.Final
    | | | | | +--- io.netty:netty-common:4.1.34.Final
    | | | | | +--- io.netty:netty-buffer:4.1.34.Final (*)
    | | | | | +--- io.netty:netty-transport:4.1.34.Final (*)
    | | | | | \--- io.netty:netty-codec:4.1.34.Final (*)
    | | | | \--- io.netty:netty-codec-http:4.1.34.Final
    | | | | +--- io.netty:netty-common:4.1.34.Final
    | | | | +--- io.netty:netty-buffer:4.1.34.Final (*)
    | | | | +--- io.netty:netty-transport:4.1.34.Final (*)
    | | | | +--- io.netty:netty-codec:4.1.34.Final (*)
    | | | | \--- io.netty:netty-handler:4.1.34.Final (*)
    | | | \--- io.netty:netty-handler-proxy:4.1.34.Final
    | | | +--- io.netty:netty-common:4.1.34.Final
    | | | +--- io.netty:netty-buffer:4.1.34.Final (*)
    | | | +--- io.netty:netty-transport:4.1.34.Final (*)
    | | | +--- io.netty:netty-codec:4.1.34.Final (*)
    | | | +--- io.netty:netty-codec-socks:4.1.34.Final
    | | | | +--- io.netty:netty-common:4.1.34.Final
    | | | | +--- io.netty:netty-buffer:4.1.34.Final (*)
    | | | | +--- io.netty:netty-transport:4.1.34.Final (*)
    | | | | \--- io.netty:netty-codec:4.1.34.Final (*)
    | | | \--- io.netty:netty-codec-http:4.1.34.Final (*)
    | | +--- io.grpc:grpc-protobuf:1.21.1
    | | | +--- io.grpc:grpc-api:1.21.1 (*)
    | | | +--- com.google.protobuf:protobuf-java:3.7.1 -> 3.10.0
    | | | +--- com.google.guava:guava:26.0-android -> 31.0.1-jre (*)
    | | | +--- com.google.api.grpc:proto-google-common-protos:1.12.0
    | | | \--- io.grpc:grpc-protobuf-lite:1.21.1
    | | | +--- io.grpc:grpc-api:1.21.1 (*)
    | | | \--- com.google.guava:guava:26.0-android -> 31.0.1-jre (*)
    | | +--- io.grpc:grpc-stub:1.21.1
    | | | \--- io.grpc:grpc-api:1.21.1 (*)
    | | +--- com.google.guava:guava:30.1-jre -> 31.0.1-jre (*)
    | | \--- com.google.protobuf:protobuf-java:3.10.0
    | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | +--- com.android.tools.build:transform-api:2.0.0-deprecated-use-gradle-api
    | +--- org.apache.httpcomponents:httpmime:4.5.6 (*)
    | +--- commons-io:commons-io:2.4
    | +--- org.ow2.asm:asm:9.1
    | +--- org.ow2.asm:asm-analysis:9.1
    | | \--- org.ow2.asm:asm-tree:9.1
    | | \--- org.ow2.asm:asm:9.1
    | +--- org.ow2.asm:asm-commons:9.1
    | | +--- org.ow2.asm:asm:9.1
    | | +--- org.ow2.asm:asm-tree:9.1 (*)
    | | \--- org.ow2.asm:asm-analysis:9.1 (*)
    | +--- org.ow2.asm:asm-util:9.1
    | | +--- org.ow2.asm:asm:9.1
    | | +--- org.ow2.asm:asm-tree:9.1 (*)
    | | \--- org.ow2.asm:asm-analysis:9.1 (*)
    | +--- org.bouncycastle:bcpkix-jdk15on:1.56 (*)
    | +--- org.glassfish.jaxb:jaxb-runtime:2.3.2 (*)
    | +--- net.sf.jopt-simple:jopt-simple:4.9
    | +--- com.android.tools.build:bundletool:1.8.0
    | | +--- com.android.tools.build:aapt2-proto:7.0.0-beta04-7396180 -> 7.1.1-7984345 (*)
    | | +--- com.google.auto.value:auto-value-annotations:1.6.2
    | | +--- com.google.errorprone:error_prone_annotations:2.3.1 -> 2.7.1
    | | +--- com.google.guava:guava:30.1-jre -> 31.0.1-jre (*)
    | | +--- com.google.protobuf:protobuf-java:3.10.0
    | | +--- com.google.protobuf:protobuf-java-util:3.10.0
    | | | +--- com.google.protobuf:protobuf-java:3.10.0
    | | | +--- com.google.guava:guava:28.0-android -> 31.0.1-jre (*)
    | | | +--- com.google.errorprone:error_prone_annotations:2.3.2 -> 2.7.1
    | | | \--- com.google.code.gson:gson:2.8.5 -> 2.8.9
    | | +--- com.google.dagger:dagger:2.28.3
    | | | \--- javax.inject:javax.inject:1
    | | +--- javax.inject:javax.inject:1
    | | +--- org.bitbucket.b_c:jose4j:0.7.0
    | | \--- org.slf4j:slf4j-api:1.7.30
    | +--- com.android.tools.build.jetifier:jetifier-core:1.0.0-beta09 (*)
    | +--- com.android.tools.build.jetifier:jetifier-processor:1.0.0-beta09
    | | +--- com.android.tools.build.jetifier:jetifier-core:1.0.0-beta09 (*)
    | | +--- org.ow2.asm:asm:6.0 -> 9.1
    | | +--- org.ow2.asm:asm-util:6.0 -> 9.1 (*)
    | | +--- org.ow2.asm:asm-commons:6.0 -> 9.1 (*)
    | | +--- org.jdom:jdom2:2.0.6
    | | \--- org.jetbrains.kotlin:kotlin-stdlib:1.3.60 -> 1.6.10 (*)
    | +--- com.squareup:javapoet:1.10.0 -> 1.13.0
    | +--- com.google.protobuf:protobuf-java:3.10.0
    | +--- com.google.protobuf:protobuf-java-util:3.10.0 (*)
    | +--- com.google.code.gson:gson:2.8.6 -> 2.8.9
    | +--- io.grpc:grpc-core:1.21.1 (*)
    | +--- io.grpc:grpc-netty:1.21.1 (*)
    | +--- io.grpc:grpc-protobuf:1.21.1 (*)
    | +--- io.grpc:grpc-stub:1.21.1 (*)
    | +--- com.google.crypto.tink:tink:1.3.0-rc2
    | | +--- com.google.protobuf:protobuf-java:3.10.0
    | | \--- org.json:json:20180813
    | +--- com.google.testing.platform:core-proto:0.0.8-alpha07
    | +--- org.jetbrains.dokka:dokka-core:1.4.32
    | | +--- org.jetbrains.kotlin:kotlin-reflect:1.4.32 (*)
    | | +--- org.jsoup:jsoup:1.13.1
    | | +--- com.fasterxml.jackson.module:jackson-module-kotlin:2.11.1
    | | | +--- com.fasterxml.jackson.core:jackson-databind:2.11.1
    | | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.11.1
    | | | | \--- com.fasterxml.jackson.core:jackson-core:2.11.1
    | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.11.1
    | | | \--- org.jetbrains.kotlin:kotlin-reflect:1.3.72 -> 1.4.32 (*)
    | | +--- com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.11.1
    | | | +--- com.fasterxml.jackson.core:jackson-core:2.11.1
    | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.11.1
    | | | +--- com.fasterxml.jackson.core:jackson-databind:2.11.1 (*)
    | | | +--- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.11.1
    | | | | +--- com.fasterxml.jackson.core:jackson-annotations:2.11.1
    | | | | +--- com.fasterxml.jackson.core:jackson-core:2.11.1
    | | | | +--- com.fasterxml.jackson.core:jackson-databind:2.11.1 (*)
    | | | | +--- jakarta.xml.bind:jakarta.xml.bind-api:2.3.2 (*)
    | | | | \--- jakarta.activation:jakarta.activation-api:1.2.1
    | | | +--- org.codehaus.woodstox:stax2-api:4.2.1
    | | | \--- com.fasterxml.woodstox:woodstox-core:6.2.1
    | | | \--- org.codehaus.woodstox:stax2-api:4.2.1
    | | +--- org.jetbrains.kotlinx:kotlinx-coroutines-core:1.4.1
    | | | \--- org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm:1.4.1
    | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.4.0 -> 1.6.10 (*)
    | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.0 -> 1.6.10
    | | +--- org.jetbrains:markdown:0.2.1
    | | | \--- org.jetbrains:markdown-jvm:0.2.1
    | | | +--- org.jetbrains.kotlin:kotlin-stdlib:1.4.10 -> 1.6.10 (*)
    | | | \--- org.jetbrains.kotlin:kotlin-stdlib-common:1.4.10 -> 1.6.10
    | | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | +--- com.google.flatbuffers:flatbuffers-java:1.12.0
    | +--- org.tensorflow:tensorflow-lite-metadata:0.1.0-rc2
    | | +--- org.checkerframework:checker-qual:2.5.8 -> 3.12.0
    | | \--- com.google.flatbuffers:flatbuffers-java:1.12.0
    | +--- com.android.tools.build:builder:7.1.1
    | | +--- com.android.tools.build:builder-model:7.1.1 (*)
    | | +--- com.android.tools.build:builder-test-api:7.1.1 (*)
    | | +--- com.android.tools:sdklib:30.1.1 (*)
    | | +--- com.android.tools:sdk-common:30.1.1 (*)
    | | +--- com.android.tools:common:30.1.1 (*)
    | | +--- com.android.tools.ddms:ddmlib:30.1.1 (*)
    | | +--- com.android:signflinger:7.1.1
    | | | +--- com.android.tools.build:apksig:7.1.1
    | | | +--- com.android:zipflinger:7.1.1
    | | | | \--- com.android.tools:annotations:30.1.1
    | | | \--- com.android.tools:annotations:30.1.1
    | | +--- com.android.tools.analytics-library:protos:30.1.1 (*)
    | | +--- com.android.tools.analytics-library:tracker:30.1.1
    | | | +--- com.android.tools:annotations:30.1.1
    | | | +--- com.android.tools:common:30.1.1 (*)
    | | | +--- com.google.protobuf:protobuf-java:3.10.0
    | | | +--- com.google.guava:guava:30.1-jre -> 31.0.1-jre (*)
    | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | | | +--- com.android.tools.analytics-library:protos:30.1.1 (*)
    | | | \--- com.android.tools.analytics-library:shared:30.1.1 (*)
    | | +--- com.android.tools.layoutlib:layoutlib-api:30.1.1 (*)
    | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | | +--- org.bouncycastle:bcpkix-jdk15on:1.56 (*)
    | | +--- commons-codec:commons-codec:1.10
    | | +--- org.bouncycastle:bcprov-jdk15on:1.56
    | | +--- org.ow2.asm:asm:9.1
    | | +--- org.ow2.asm:asm-tree:9.1 (*)
    | | +--- javax.inject:javax.inject:1
    | | +--- org.ow2.asm:asm-commons:9.1 (*)
    | | +--- org.ow2.asm:asm-util:9.1 (*)
    | | +--- it.unimi.dsi:fastutil:8.4.0
    | | +--- net.sf.jopt-simple:jopt-simple:4.9
    | | +--- com.googlecode.json-simple:json-simple:1.1
    | | +--- com.android.tools.build:manifest-merger:30.1.1
    | | | +--- com.android.tools:common:30.1.1 (*)
    | | | +--- com.android.tools:sdklib:30.1.1 (*)
    | | | +--- com.android.tools:sdk-common:30.1.1 (*)
    | | | +--- com.google.code.gson:gson:2.8.6 -> 2.8.9
    | | | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | | | \--- net.sf.kxml:kxml2:2.3.0
    | | +--- com.android:zipflinger:7.1.1 (*)
    | | +--- com.android.tools.build:apksig:7.1.1
    | | +--- com.android.tools.build:apkzlib:7.1.1
    | | | +--- com.google.code.findbugs:jsr305:1.3.9 -> 3.0.2
    | | | +--- com.google.guava:guava:23.0 -> 31.0.1-jre (*)
    | | | +--- org.bouncycastle:bcpkix-jdk15on:1.56 (*)
    | | | +--- org.bouncycastle:bcprov-jdk15on:1.56
    | | | \--- com.android.tools.build:apksig:7.1.1
    | | \--- com.squareup:javawriter:2.5.0
    | +--- com.android.tools.build:builder-model:7.1.1 (*)
    | \--- com.android.tools.build:gradle-api:7.1.1
    | +--- com.android.tools.build:builder-test-api:7.1.1 (*)
    | +--- com.google.guava:guava:30.1-jre -> 31.0.1-jre (*)
    | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.32 -> 1.6.10 (*)
    | \--- org.ow2.asm:asm:9.1
    +--- com.facebook.react:react-native-gradle-plugin -> project :react-native-gradle-plugin
    | +--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.6.10 (*)
    | +--- com.android.tools.build:gradle:7.0.4 -> 7.1.1 (*)
    | +--- com.google.code.gson:gson:2.8.9
    | +--- com.google.guava:guava:31.0.1-jre (*)
    | \--- com.squareup:javapoet:1.13.0
    +--- de.undercouch:gradle-download-task:5.0.1
    \--- com.google.gms:google-services:4.3.13
    +--- com.google.android.gms:strict-version-matcher-plugin:1.2.4
    | +--- com.google.code.findbugs:jsr305:3.0.2
    | +--- com.google.guava:guava:27.0.1-jre -> 31.0.1-jre (*)
    | \--- org.jetbrains.kotlin:kotlin-stdlib-jdk8:1.4.10 -> 1.6.10 (*)
    +--- com.google.code.gson:gson:2.8.5 -> 2.8.9
    \--- com.google.guava:guava:27.0.1-jre -> 31.0.1-jre (*)

    (*) - dependencies omitted (listed previously)

    A web-based, searchable dependency report is available by adding the --scan option.
    w: Detected multiple Kotlin daemon sessions at build/kotlin/sessions

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

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

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

    BUILD SUCCESSFUL in 1m 4s
    7 actionable tasks: 1 executed, 6 up-to-date
  4. stevoland created this gist Apr 25, 2023.
    316 changes: 316 additions & 0 deletions stacktrace
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,316 @@
    Uploading mapping file for native:2.70.0 {variant:staging} (site=datadoghq.eu):

    Creating request with GZIP encoding.
    Error uploading the mapping file for native:2.70.0 {variant:staging}
    java.net.ConnectException: Failed to connect to sourcemap-intake.datadoghq.eu/2600:1901:0:606b:0:0:0:0:443
    at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:297)
    at okhttp3.internal.connection.RealConnection.connect(RealConnection.kt:207)
    at okhttp3.internal.connection.ExchangeFinder.findConnection(ExchangeFinder.kt:226)
    at okhttp3.internal.connection.ExchangeFinder.findHealthyConnection(ExchangeFinder.kt:106)
    at okhttp3.internal.connection.ExchangeFinder.find(ExchangeFinder.kt:74)
    at okhttp3.internal.connection.RealCall.initExchange$okhttp(RealCall.kt:255)
    at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:32)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
    at okhttp3.internal.cache.CacheInterceptor.intercept(CacheInterceptor.kt:95)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
    at okhttp3.internal.http.BridgeInterceptor.intercept(BridgeInterceptor.kt:83)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
    at okhttp3.internal.http.RetryAndFollowUpInterceptor.intercept(RetryAndFollowUpInterceptor.kt:76)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
    at okhttp3.internal.connection.RealCall.getResponseWithInterceptorChain$okhttp(RealCall.kt:201)
    at okhttp3.internal.connection.RealCall.execute(RealCall.kt:154)
    at com.datadog.gradle.plugin.internal.OkHttpUploader.upload(OkHttpUploader.kt:80)
    at com.datadog.gradle.plugin.DdMappingFileUploadTask.applyTask(DdMappingFileUploadTask.kt:163)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:566)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:58)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:51)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:29)
    at org.gradle.api.internal.tasks.execution.TaskExecution$2.run(TaskExecution.java:239)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:29)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$1.execute(DefaultBuildOperationRunner.java:26)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.run(DefaultBuildOperationRunner.java:47)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:68)
    at org.gradle.api.internal.tasks.execution.TaskExecution.executeAction(TaskExecution.java:224)
    at org.gradle.api.internal.tasks.execution.TaskExecution.executeActions(TaskExecution.java:207)
    at org.gradle.api.internal.tasks.execution.TaskExecution.executeWithPreviousOutputFiles(TaskExecution.java:190)
    at org.gradle.api.internal.tasks.execution.TaskExecution.execute(TaskExecution.java:168)
    at org.gradle.internal.execution.steps.ExecuteStep.executeInternal(ExecuteStep.java:89)
    at org.gradle.internal.execution.steps.ExecuteStep.access$000(ExecuteStep.java:40)
    at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:53)
    at org.gradle.internal.execution.steps.ExecuteStep$1.call(ExecuteStep.java:50)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:50)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:40)
    at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:68)
    at org.gradle.internal.execution.steps.RemovePreviousOutputsStep.execute(RemovePreviousOutputsStep.java:38)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:48)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:36)
    at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:41)
    at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:74)
    at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:55)
    at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:51)
    at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:29)
    at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:61)
    at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:42)
    at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:60)
    at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:27)
    at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:188)
    at org.gradle.internal.execution.steps.BuildCacheStep.lambda$execute$1(BuildCacheStep.java:75)
    at org.gradle.internal.Either$Right.fold(Either.java:175)
    at org.gradle.internal.execution.caching.CachingState.fold(CachingState.java:59)
    at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:73)
    at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:48)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:38)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:27)
    at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)
    at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:109)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$2(SkipUpToDateStep.java:56)
    at java.base/java.util.Optional.orElseGet(Optional.java:369)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:56)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:38)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:73)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:44)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
    at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:89)
    at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:50)
    at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:114)
    at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:57)
    at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:76)
    at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:50)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:93)
    at java.base/java.util.Optional.orElseGet(Optional.java:369)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:93)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:34)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
    at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:43)
    at org.gradle.internal.execution.steps.LoadPreviousExecutionStateStep.execute(LoadPreviousExecutionStateStep.java:31)
    at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:40)
    at org.gradle.api.internal.tasks.execution.TaskExecution$3.withWorkspace(TaskExecution.java:284)
    at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:40)
    at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
    at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)
    at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)
    at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:44)
    at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:33)
    at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:76)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:142)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:131)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:74)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:402)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:389)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:382)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:368)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
    at org.gradle.execution.plan.DefaultPlanExecutor.process(DefaultPlanExecutor.java:72)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.executeWithServices(DefaultTaskExecutionGraph.java:187)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph.execute(DefaultTaskExecutionGraph.java:180)
    at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:39)
    at org.gradle.execution.DefaultBuildWorkExecutor.execute(DefaultBuildWorkExecutor.java:44)
    at org.gradle.execution.DefaultBuildWorkExecutor.access$000(DefaultBuildWorkExecutor.java:26)
    at org.gradle.execution.DefaultBuildWorkExecutor$1.proceed(DefaultBuildWorkExecutor.java:52)
    at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:49)
    at org.gradle.execution.DefaultBuildWorkExecutor.execute(DefaultBuildWorkExecutor.java:44)
    at org.gradle.execution.DefaultBuildWorkExecutor.execute(DefaultBuildWorkExecutor.java:36)
    at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor$ExecuteTasks.call(BuildOperationFiringBuildWorkerExecutor.java:51)
    at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor$ExecuteTasks.call(BuildOperationFiringBuildWorkerExecutor.java:42)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
    at org.gradle.execution.BuildOperationFiringBuildWorkerExecutor.execute(BuildOperationFiringBuildWorkerExecutor.java:39)
    at org.gradle.internal.build.DefaultBuildLifecycleController.lambda$executeTasks$3(DefaultBuildLifecycleController.java:136)
    at org.gradle.internal.build.StateTransitionController.doTransition(StateTransitionController.java:243)
    at org.gradle.internal.build.StateTransitionController.tryTransition(StateTransitionController.java:158)
    at org.gradle.internal.build.DefaultBuildLifecycleController.executeTasks(DefaultBuildLifecycleController.java:136)
    at org.gradle.internal.buildtree.DefaultBuildTreeWorkExecutor.execute(DefaultBuildTreeWorkExecutor.java:35)
    at org.gradle.internal.buildtree.BuildOperationFiringBuildTreeWorkExecutor$1.call(BuildOperationFiringBuildTreeWorkExecutor.java:40)
    at org.gradle.internal.buildtree.BuildOperationFiringBuildTreeWorkExecutor$1.call(BuildOperationFiringBuildTreeWorkExecutor.java:37)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
    at org.gradle.internal.buildtree.BuildOperationFiringBuildTreeWorkExecutor.execute(BuildOperationFiringBuildTreeWorkExecutor.java:37)
    at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$doScheduleAndRunTasks$2(DefaultBuildTreeLifecycleController.java:87)
    at org.gradle.composite.internal.DefaultIncludedBuildTaskGraph.withNewTaskGraph(DefaultIncludedBuildTaskGraph.java:94)
    at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.doScheduleAndRunTasks(DefaultBuildTreeLifecycleController.java:85)
    at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.lambda$runBuild$4(DefaultBuildTreeLifecycleController.java:103)
    at org.gradle.internal.build.StateTransitionController.lambda$transition$0(StateTransitionController.java:145)
    at org.gradle.internal.build.StateTransitionController.doTransition(StateTransitionController.java:243)
    at org.gradle.internal.build.StateTransitionController.transition(StateTransitionController.java:145)
    at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.runBuild(DefaultBuildTreeLifecycleController.java:100)
    at org.gradle.internal.buildtree.DefaultBuildTreeLifecycleController.scheduleAndRunTasks(DefaultBuildTreeLifecycleController.java:66)
    at org.gradle.tooling.internal.provider.ExecuteBuildActionRunner.run(ExecuteBuildActionRunner.java:31)
    at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
    at org.gradle.internal.buildtree.ProblemReportingBuildActionRunner.run(ProblemReportingBuildActionRunner.java:49)
    at org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:69)
    at org.gradle.tooling.internal.provider.FileSystemWatchingBuildActionRunner.run(FileSystemWatchingBuildActionRunner.java:114)
    at org.gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner.run(BuildCompletionNotifyingBuildActionRunner.java:41)
    at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.lambda$execute$0(RootBuildLifecycleBuildActionExecutor.java:40)
    at org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:155)
    at org.gradle.launcher.exec.RootBuildLifecycleBuildActionExecutor.execute(RootBuildLifecycleBuildActionExecutor.java:40)
    at org.gradle.internal.buildtree.DefaultBuildTreeContext.execute(DefaultBuildTreeContext.java:40)
    at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.lambda$execute$0(BuildTreeLifecycleBuildActionExecutor.java:65)
    at org.gradle.internal.buildtree.BuildTreeState.run(BuildTreeState.java:53)
    at org.gradle.launcher.exec.BuildTreeLifecycleBuildActionExecutor.execute(BuildTreeLifecycleBuildActionExecutor.java:65)
    at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:61)
    at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor$3.call(RunAsBuildOperationBuildActionExecutor.java:57)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
    at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
    at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
    at org.gradle.launcher.exec.RunAsBuildOperationBuildActionExecutor.execute(RunAsBuildOperationBuildActionExecutor.java:57)
    at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.lambda$execute$0(RunAsWorkerThreadBuildActionExecutor.java:38)
    at org.gradle.internal.work.DefaultWorkerLeaseService.withLocks(DefaultWorkerLeaseService.java:211)
    at org.gradle.launcher.exec.RunAsWorkerThreadBuildActionExecutor.execute(RunAsWorkerThreadBuildActionExecutor.java:38)
    at org.gradle.tooling.internal.provider.ContinuousBuildActionExecutor.execute(ContinuousBuildActionExecutor.java:103)
    at org.gradle.tooling.internal.provider.SubscribableBuildActionExecutor.execute(SubscribableBuildActionExecutor.java:64)
    at org.gradle.internal.session.DefaultBuildSessionContext.execute(DefaultBuildSessionContext.java:46)
    at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter$ActionImpl.apply(BuildSessionLifecycleBuildActionExecuter.java:100)
    at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter$ActionImpl.apply(BuildSessionLifecycleBuildActionExecuter.java:88)
    at org.gradle.internal.session.BuildSessionState.run(BuildSessionState.java:69)
    at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:62)
    at org.gradle.tooling.internal.provider.BuildSessionLifecycleBuildActionExecuter.execute(BuildSessionLifecycleBuildActionExecuter.java:41)
    at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:36)
    at org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:25)
    at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:63)
    at org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:31)
    at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:58)
    at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:42)
    at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:47)
    at org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:31)
    at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:65)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:39)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:29)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:75)
    at org.gradle.util.internal.Swapper.swap(Swapper.java:38)
    at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:50)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:84)
    at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37)
    at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)
    at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52)
    at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:61)
    at java.base/java.lang.Thread.run(Thread.java:829)
    Suppressed: okhttp3.internal.http2.StreamResetException: stream was reset: NO_ERROR
    at okhttp3.internal.http2.Http2Stream.checkOutNotClosed$okhttp(Http2Stream.kt:646)
    at okhttp3.internal.http2.Http2Stream$FramingSink.emitFrame(Http2Stream.kt:557)
    at okhttp3.internal.http2.Http2Stream$FramingSink.write(Http2Stream.kt:532)
    at okio.ForwardingSink.write(ForwardingSink.kt:29)
    at okhttp3.internal.connection.Exchange$RequestBodySink.write(Exchange.kt:218)
    at okio.RealBufferedSink.emitCompleteSegments(RealBufferedSink.kt:255)
    at okio.RealBufferedSink.write(RealBufferedSink.kt:146)
    at okio.RealBufferedSink.emitCompleteSegments(RealBufferedSink.kt:255)
    at okio.DeflaterSink.deflate(DeflaterSink.kt:97)
    at okio.DeflaterSink.write(DeflaterSink.kt:64)
    at okio.GzipSink.write(GzipSink.kt:79)
    at okio.RealBufferedSink.emitCompleteSegments(RealBufferedSink.kt:255)
    at okio.RealBufferedSink.writeAll(RealBufferedSink.kt:194)
    at okhttp3.RequestBody$Companion$asRequestBody$1.writeTo(RequestBody.kt:167)
    at okhttp3.MultipartBody.writeOrCountBytes(MultipartBody.kt:157)
    at okhttp3.MultipartBody.writeTo(MultipartBody.kt:93)
    at com.datadog.gradle.plugin.internal.OkHttpUploader$gzip$1.writeTo(OkHttpUploader.kt:246)
    at okhttp3.internal.http.CallServerInterceptor.intercept(CallServerInterceptor.kt:59)
    at okhttp3.internal.http.RealInterceptorChain.proceed(RealInterceptorChain.kt:109)
    at okhttp3.internal.connection.ConnectInterceptor.intercept(ConnectInterceptor.kt:34)
    ... 248 more
    Caused by: java.net.ConnectException: Network is unreachable (connect failed)
    at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
    at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:412)
    at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:255)
    at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:237)
    at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.base/java.net.Socket.connect(Socket.java:609)
    at okhttp3.internal.platform.Platform.connectSocket(Platform.kt:128)
    at okhttp3.internal.connection.RealConnection.connectSocket(RealConnection.kt:295)
    ... 254 more
    Watching 73 directories to track changes
    :app:uploadMappingStagingRelease (Thread[Daemon worker,5,main]) completed. Took 0.796 secs.

    FAILURE: Build failed with an exception.

    * What went wrong:
    Execution failed for task ':app:uploadMappingStagingRelease'.
    > Unable to upload mapping file for native:2.70.0 {variant:staging}; check your network connection

    * Try:
    > Run with --stacktrace option to get the stack trace.
    > Run with --debug option to get more log output.
    > Run with --scan to get full insights.

    * Get more help at https://help.gradle.org

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

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

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

    BUILD FAILED in 33s
    7 actionable tasks: 1 executed, 6 up-to-date