Skip to content

[馃悰] Bug Report Title - android failed to build#780

Description

@ivannzme

What happened?

Getting below error when trying to build android

Task :react-native-google-mobile-ads:compileDebugKotlin FAILED

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

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

See https://docs.gradle.org/8.1/userguide/command_line_interface.html#sec:command_line_warnings
719 actionable tasks: 184 executed, 530 from cache, 5 up-to-date

info 馃挕 Tip: Make sure that you have set up your development environment correctly, by running react-native doctor. To read more about doctor command visit: https://github.com/react-native-community/cli/blob/main/packages/cli-doctor/README.md#doctor

Warning: SDK processing. This version only understands SDK XML versions up to 3 but an SDK XML file of version 4 was encountered. This can happen if you use versions of Android Studio and the command-line tools that were released at different times.
e: file:/node_modules/react-native-google-mobile-ads/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsMediaViewManager.kt:32:59 Too many arguments for public constructor ViewGroupManager<T : ViewGroup!>() defined in com.facebook.react.uimanager.ViewGroupManager
e: file:/node_modules/react-native-google-mobile-ads/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsNativeAdViewManager.kt:34:62 Too many arguments for public constructor ViewGroupManager<T : ViewGroup!>() defined in com.facebook.react.uimanager.ViewGroupManager
e: file:/node_modules/react-native-google-mobile-ads/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsNativeModule.kt:34:14 Only named arguments are available for Java annotations
e: file:/node_modules/react-native-google-mobile-ads/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsPackage.kt:65:9 No value passed for parameter 'p6'
e: file:/node_modules/react-native-google-mobile-ads/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsPackage.kt:74:9 No value passed for parameter 'p6'
e: file:/node_modules/react-native-google-mobile-ads/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsPackage.kt:83:9 No value passed for parameter 'p6'
e: file:/node_modules/react-native-google-mobile-ads/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsPackage.kt:92:9 No value passed for parameter 'p6'
e: file:/node_modules/react-native-google-mobile-ads/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsPackage.kt:101:7 No value passed for parameter 'p6'
e: file:/node_modules/react-native-google-mobile-ads/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsPackage.kt:110:9 No value passed for parameter 'p6'
e: file:/node_modules/react-native-google-mobile-ads/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsPackage.kt:119:9 No value passed for parameter 'p6'
e: file:/node_modules/react-native-google-mobile-ads/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsPackage.kt:128:9 No value passed for parameter 'p6'

FAILURE: Build failed with an exception.

  • What went wrong:
    Execution failed for task ':react-native-google-mobile-ads:compileDebugKotlin'.

A failure occurred while executing org.jetbrains.kotlin.compilerRunner.GradleCompilerRunnerWithWorkers$GradleKotlinCompilerWorkAction
Compilation error. See log for more details

Platforms

Only on Android

React Native Info

info Fetching system and libraries information...
System:
  OS: macOS 15.5
  CPU: (8) arm64 Apple M1
  Memory: 100.55 MB / 16.00 GB
  Shell:
    version: "5.9"
    path: /bin/zsh
Binaries:
  Node:
    version: 18.20.2
    path: ~/.nvm/versions/node/v18.20.2/bin/node
  Yarn: Not Found
  npm:
    version: 10.5.0
    path: ~/.nvm/versions/node/v18.20.2/bin/npm
  Watchman:
    version: 2024.11.04.00
    path: /opt/homebrew/bin/watchman
Managers:
  CocoaPods:
    version: 1.16.2
    path: /Users/username/.rbenv/shims/pod
SDKs:
  iOS SDK:
    Platforms:
      - DriverKit 24.5
      - iOS 18.5
      - macOS 15.5
      - tvOS 18.5
      - visionOS 2.5
      - watchOS 11.5
  Android SDK: Not Found
IDEs:
  Android Studio: 2024.2 AI-242.23339.11.2421.12550806
  Xcode:
    version: 16.4/16F6
    path: /usr/bin/xcodebuild
Languages:
  Java:
    version: 17.0.13
    path: /usr/bin/javac
  Ruby:
    version: 3.3.5
    path: /Users/username/.rbenv/shims/ruby
npmPackages:
  "@react-native-community/cli": Not Found
  react:
    installed: 18.2.0
    wanted: 18.2.0
  react-native:
    installed: 0.72.17
    wanted: 0.72.17
  react-native-macos: Not Found
npmGlobalPackages:
  "*react-native*": Not Found
Android:
  hermesEnabled: true
  newArchEnabled: false
iOS:
  hermesEnabled: true
  newArchEnabled: false

Are your using Typescript?

  • My project is using Typescript

package.json

{
  "name": "NameOfProject",
  "version": "7.2.5",
  "private": true,
  "scripts": {
    "start": "react-native start",
    "swagger": "node utils/swagger.js && eslint App/Utils/Api.js --fix",
    "android": "npx react-native run-android",
    "android-sit": "export ENVFILE=.env.sandbox && npx react-native run-android",
    "android-prod": "export ENVFILE=.env.live && npx react-native run-android",
    "ios": "npx react-native run-ios",
    "ios-sit": "export ENVFILE=.env.sandbox && npx react-native run-ios",
    "ios-prod": "export ENVFILE=.env.live && npx react-native run-ios",
    "clean": "react-native clean-project-auto",
    "android:fullbuild": "cd android && ./gradlew clean && ./gradlew assembleRelease &&  open app/build/outputs/apk/release/ && cd ../../../../../../",
    "test": "jest",
    "test-ci": "jest --ci --runInBand",
    "coverage": "jest --coverage --ci --runInBand",
    "lint": "eslint .",
    "preversion": "source ./npm-version/pre-version.sh",
    "version": "node ./npm-version/version-ios.js",
    "postversion": "source ./npm-version/post-version.sh",
    "create-beta-branch": "source ./npm-version/create-beta-branch.sh",
    "create-installation-packages": "source ./test_automation_utils/create-installation-packages",
    "prepare": "husky install"
  },
  "dependencies": {
    "@braze/react-native-sdk": "10.0.0",
    "@react-native-async-storage/async-storage": "1.24.0",
    "@react-native-clipboard/clipboard": "1.14.3",
    "@react-native-community/cli-platform-android": "11.4.1",
    "@react-native-community/geolocation": "3.4.0",
    "@react-native-community/netinfo": "11.4.1",
    "@react-native-community/slider": "^4.5.5",
    "@react-native-cookies/cookies": "6.2.1",
    "@react-native-firebase/analytics": "20.5.0",
    "@react-native-firebase/app": "20.5.0",
    "@react-native-firebase/crashlytics": "20.5.0",
    "@react-native-firebase/installations": "20.5.0",
    "@react-native-firebase/perf": "20.5.0",
    "@react-native-firebase/remote-config": "20.5.0",
    "@react-navigation/bottom-tabs": "6.6.1",
    "@react-navigation/material-top-tabs": "6.6.14",
    "@react-navigation/native": "6.1.18",
    "@react-navigation/stack": "6.4.1",
    "@shopify/flash-list": "^1.8.0",
    "compare-versions": "6.1.1",
    "dotenv-parse-variables": "2.0.0",
    "fast-xml-parser": "^5.2.2",
    "formik": "2.4.6",
    "is-html": "3.1.0",
    "jsrsasign": "11.1.0",
    "lottie-react-native": "6.7.2",
    "mobx": "6.13.5",
    "mobx-react": "9.1.1",
    "moment-timezone": "0.5.46",
    "prop-types": "15.8.1",
    "q": "1.5.1",
    "ramda": "0.30.1",
    "react": "18.2.0",
    "react-content-loader": "7.0.2",
    "react-native": "0.72.17",
    "react-native-ad-manager": "https://github.com/NZME/react-native-ad-manager.git#update-ios-ad-sdk",
    "react-native-app-intro-slider": "4.0.4",
    "react-native-autoheight-webview": "1.6.5",
    "react-native-brightcove-ima-player": "https://github.com/NZME/react-native-brightcove-ima-player.git#mobile-ad-sdk-poc",
    "react-native-can-make-payments": "0.0.3",
    "react-native-collapsible": "1.6.2",
    "react-native-config": "1.5.3",
    "react-native-device-info": "13.2.0",
    "react-native-draglist": "3.6.2",
    "react-native-element-dropdown": "2.12.2",
    "react-native-gesture-handler": "2.20.2",
    "react-native-get-random-values": "1.11.0",
    "react-native-google-mobile-ads": "^14.11.0",
    "react-native-iap": "12.15.0",
    "react-native-idfa": "https://github.com/ptomasroos/react-native-idfa.git",
    "react-native-image-zoom-viewer": "3.0.1",
    "react-native-linear-gradient": "2.8.3",
    "react-native-localize": "^3.4.1",
    "react-native-network-info": "^5.2.1",
    "react-native-nielsen-nzme": "https://github.com/NZME/react-native-nielsen-nzme.git#lockNielsenSdkVersion9",
    "react-native-orientation-locker": "1.7.0",
    "react-native-pager-view": "6.4.1",
    "react-native-permissions": "4.1.5",
    "react-native-rate": "1.2.12",
    "react-native-ratings": "8.1.0",
    "react-native-render-html": "6.3.4",
    "react-native-safe-area-context": "4.14.0",
    "react-native-screens": "3.35.0",
    "react-native-share": "10.2.1",
    "react-native-svg": "15.7.1",
    "react-native-tab-view": "3.5.2",
    "react-native-text-ticker": "1.14.0",
    "react-native-track-player": "^4.1.1",
    "react-native-uuid": "2.0.2",
    "react-native-vector-icons": "10.2.0",
    "react-native-webview": "13.12.3",
    "yup": "1.4.0"
  },
  "devDependencies": {
    "@babel/core": "7.25.9",
    "@babel/preset-env": "7.26.0",
    "@babel/runtime": "7.26.0",
    "@react-native/eslint-config": "0.72.2",
    "@react-native/js-polyfills": "0.76.1",
    "@react-native/metro-babel-transformer": "0.76.1",
    "@react-native/metro-config": "0.72.12",
    "@testing-library/jest-native": "5.4.3",
    "@testing-library/react-native": "12.7.2",
    "@tsconfig/react-native": "3.0.5",
    "@types/jest": "29.5.14",
    "@types/jsdom": "21.1.7",
    "@types/react": "18.3.12",
    "@types/react-test-renderer": "18.3.0",
    "babel-jest": "29.7.0",
    "babel-plugin-module-resolver": "4.1.0",
    "eslint": "8.57.1",
    "eslint-config-prettier": "8.10.0",
    "eslint-plugin-jest": "27.9.0",
    "eslint-plugin-prettier": "4.2.1",
    "eslint-plugin-react": "7.37.2",
    "husky": "9.1.6",
    "jest": "29.7.0",
    "jest-extended": "4.0.2",
    "jsc-android": "250231.0.0",
    "jsdom": "25.0.1",
    "metro-config": "0.81.0",
    "metro-react-native-babel-preset": "0.76.9",
    "metro-runtime": "0.81.0",
    "plist": "3.1.0",
    "prettier": "2.8.8",
    "react-dom": "18.2.0",
    "react-native-svg-transformer": "1.5.0",
    "react-test-renderer": "18.2.0",
    "reactotron-react-native": "^5.1.12",
    "swagger-js-codegen": "1.13.0",
    "typescript": "5.6.3"
  },
  "engines": {
    "node": ">=16"
  }
}

app.json

{
  "name": "NameOfProject",
  "displayName": "DisplayName",
  "react-native-google-mobile-ads": {
    "android_app_id": "ca-app-pub-xxx~xxxx",
    "ios_app_id": "ca-app-pub-xxxx~xxxx"
  }
}

ios/Podfile

android/build.gradle

// Top-level build file where you can add configuration options common to all sub-projects/modules.

import groovy.json.JsonSlurper

def getNpmVersion() {
    def inputFile = new File(project.projectDir.toString() + "/../package.json")
    def packageJson = new JsonSlurper().parseText(inputFile.text)
    return packageJson["version"]
}

def getNpmVersionArray() { // major [0], minor [1], patch [2]
    def (major, minor, patch) = getNpmVersion().tokenize('.')
    return [Integer.parseInt(major), Integer.parseInt(minor), Integer.parseInt(patch)] as int[]
}

buildscript {
    ext {
        buildToolsVersion = "34.0.0"
        minSdkVersion = 24
        compileSdkVersion = 34
        targetSdkVersion = 34
        supportLibVersion = "29.0.3"
        // We use NDK 23 which has both M1 support and is the side-by-side NDK version from AGP.
        ndkVersion = "25.1.8937393"
        ext.kotlinVersion = '1.8.10'
    }
    repositories {
        google()
        mavenCentral()
    }
    dependencies {
        classpath("com.android.tools.build:gradle") // new standard for AGP8
        // classpath('com.android.tools.build:gradle:7.4.2') // <= AGP7
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" // (Matt 13Oct'24) Used by: node_modules/@braze/react-native-sdk
        classpath("com.facebook.react:react-native-gradle-plugin")

        classpath('com.google.gms:google-services:4.4.2')
        classpath('com.google.firebase:firebase-crashlytics-gradle:2.5.2')
        classpath('com.google.firebase:perf-plugin:1.4.1')
    }
}

allprojects {
    repositories {
        // exclusiveContent {
        //     // We get React Native's Android binaries exclusively through npm,
        //     // from a local Maven repo inside node_modules/react-native/.
        //     // (The use of exclusiveContent prevents looking elsewhere like Maven Central
        //     // and potentially getting a wrong version.)
        //     filter {
        //         includeGroup "com.facebook.react"
        //     }
        //     forRepository {
        //         maven {
        //             url "$rootDir/../node_modules/react-native/android"
        //         }
        //     }
        // }
        // maven {
        //     // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
        //     url("$rootDir/../node_modules/react-native/android")
        // }
        // maven {
        //     // Android JSC is installed from npm
        //     url("$rootDir/../node_modules/jsc-android/dist")
        // }
        // mavenCentral {
        //     // We don't want to fetch react-native from Maven Central as there are
        //     // older versions over there.
        //     content {
        //         excludeGroup "com.facebook.react"
        //     }
        // }
        google()
        maven {
            url 'https://repo.brightcove.com/releases'
        }
        maven {
            url "https://braze-inc.github.io/braze-android-sdk/sdk"
        }
        maven {
            url 'https://raw.githubusercontent.com/NielsenDigitalSDK/nielsenappsdk-android/master/'
        }
    }
}

subprojects {
    ext {
        def npmVersion = getNpmVersionArray()
        versionMajor = npmVersion[0]
        versionMinor = npmVersion[1]
        versionPatch = npmVersion[2]
    }
}

android/app/build.gradle

apply plugin: "com.android.application"
apply plugin: "com.facebook.react"

apply plugin: 'com.google.gms.google-services'
apply plugin: 'com.google.firebase.crashlytics'
apply plugin: 'com.google.firebase.firebase-perf'

/**
 * This is the configuration block to customize your React Native Android app.
 * By default you don't need to apply any configuration, just uncomment the lines you need.
 */
react {
    /* Folders */
    //   The root of your project, i.e. where "package.json" lives. Default is '..'
    // root = file("../")
    //   The folder where the react-native NPM package is. Default is ../node_modules/react-native
    // reactNativeDir = file("../node_modules/react-native")
    //   The folder where the react-native Codegen package is. Default is ../node_modules/@react-native/codegen
    // codegenDir = file("../node_modules/@react-native/codegen")
    //   The cli.js file which is the React Native CLI entrypoint. Default is ../node_modules/react-native/cli.js
    // cliFile = file("../node_modules/react-native/cli.js")

    /* Variants */
    //   The list of variants to that are debuggable. For those we're going to
    //   skip the bundling of the JS bundle and the assets. By default is just 'debug'.
    //   If you add flavors like lite, prod, etc. you'll have to list your debuggableVariants.
    // debuggableVariants = ["liteDebug", "prodDebug"]

    /* Bundling */
    //   A list containing the node command and its flags. Default is just 'node'.
    // nodeExecutableAndArgs = ["node"]
    //
    //   The command to run when bundling. By default is 'bundle'
    // bundleCommand = "ram-bundle"
    //
    //   The path to the CLI configuration file. Default is empty.
    // bundleConfig = file(../rn-cli.config.js)
    //
    //   The name of the generated asset file containing your JS bundle
    // bundleAssetName = "MyApplication.android.bundle"
    //
    //   The entry file for bundle generation. Default is 'index.android.js' or 'index.js'
    // entryFile = file("../js/MyApplication.android.js")
    //
    //   A list of extra flags to pass to the 'bundle' commands.
    //   See https://github.com/react-native-community/cli/blob/main/docs/commands.md#bundle
    // extraPackagerArgs = []

    /* Hermes Commands */
    //   The hermes compiler command to run. By default it is 'hermesc'
    // hermesCommand = "$rootDir/my-custom-hermesc/bin/hermesc"
    //
    //   The list of flags to pass to the Hermes compiler. By default is "-O", "-output-source-map"
    // hermesFlags = ["-O", "-output-source-map"]
}


project.ext.react = [
    entryFile: "index.js",
    // enableHermes required here and within `gradle.properties`, if missing here
    // the `libhermes.so` is not bundled with the build
    enableHermes: true, 
    bundleInDebug: false,
    bundleInStaging: true, // Default. Ensures the bundle is included in the staging build
    bundleInRelease: true, // Default. Ensures the bundle is included in the release build
    bundleInSitrelease: true,
    bundleInProdrelease: true,
]

project.ext.envConfigFiles = [
    debug: ".env",
    release: ".env",
    sitrelease: ".env.sandbox",
    prodrelease: ".env.live"
]

apply from: project(':react-native-config').projectDir.getPath() + "/dotenv.gradle"

apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"

/**
 * Set this to true to Run Proguard on Release builds to minify the Java bytecode.
 */
def enableProguardInReleaseBuilds = false

/**
 * The preferred build flavor of JavaScriptCore (JSC)
 *
 * 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:+'

android {
    namespace "com.xxxxx.activities"
    ndkVersion rootProject.ext.ndkVersion
    buildToolsVersion rootProject.ext.buildToolsVersion
    compileSdkVersion rootProject.ext.compileSdkVersion
    
    def gitCommitCount = "git rev-list HEAD --count".execute(null, rootProject.projectDir).text.trim().toBigInteger()
    project.ext.set("versionCode", gitCommitCount)

    def prodReleaseVersionCode = versionMajor * 10000 + versionMinor * 100 + versionPatch + gitCommitCount

    configurations.all {
        resolutionStrategy {
            force 'com.google.android.gms:play-services-ads:22.6.0'
        }
    }
    defaultConfig {
        applicationId "com.xxxxxx.activities"
        minSdkVersion rootProject.ext.minSdkVersion
        targetSdkVersion rootProject.ext.targetSdkVersion
        renderscriptTargetApi rootProject.ext.compileSdkVersion
        renderscriptSupportModeEnabled true
        /**
         * versionCode and versionName are now based on npm version [<newversion> | major | minor | patch]
         * derived from package.json.
        */
        versionCode project.versionCode
        versionName "${versionMajor}.${versionMinor}.${versionPatch}"
        multiDexEnabled true

        // testBuildType System.getProperty('testBuildType', 'debug')  // This will later be used to control the test apk build type
        // testInstrumentationRunner 'androidx.test.runner.AndroidJUnitRunner'
        
        // react-native-iap - enable google play store only (Not amazon) https://react-native-iap.dooboolab.com/docs/get-started/
        missingDimensionStrategy 'store', 'play'
    }
    signingConfigs {
        release {
            // Load keystore
            def keystorePropertiesFile = rootProject.file("keystore.properties");
            def keystoreProperties = new Properties()
            if (keystorePropertiesFile.exists()) {
                keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
                storeFile file(keystoreProperties['XXX_RELEASE_STORE_FILE'])
                storePassword keystoreProperties['XXX_RELEASE_STORE_PASSWORD']
                keyAlias keystoreProperties['XXX_RELEASE_KEY_ALIAS']
                keyPassword keystoreProperties['XXX_RELEASE_KEY_PASSWORD']
            }
        }
        prodrelease {
            // Load keystore
            def keystorePropertiesFile = rootProject.file("keystore.properties");
            def keystoreProperties = new Properties()
            if (keystorePropertiesFile.exists()) {
                keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
                storeFile file(keystoreProperties['XXX_RELEASE_STORE_FILE'])
                storePassword keystoreProperties['XXX_RELEASE_STORE_PASSWORD']
                keyAlias keystoreProperties['XXX_RELEASE_KEY_ALIAS']
                keyPassword keystoreProperties['XXX_RELEASE_KEY_PASSWORD']
            }
        }
    }

    buildTypes {
        release {
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            signingConfig signingConfigs.release
            // firebaseCrashlytics {
            //     nativeSymbolUploadEnabled true
            // }
        }
        sitrelease {
            initWith release
            matchingFallbacks = ['release']
        }
        prodrelease {
            minifyEnabled enableProguardInReleaseBuilds
            proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
            signingConfig signingConfigs.prodrelease
            matchingFallbacks = ['release']
        }
    }
    // applicationVariants are e.g. debug, release
    applicationVariants.all { variant ->
        // variant.outputs.each { output ->
        //     // For each separate APK per architecture, set a unique version code as described here:
        //     // https://developer.android.com/studio/build/configure-apk-splits.html
        //     // Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc.
        //     def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
        //     def abi = output.getFilter(OutputFile.ABI)
        //     if (abi != null) {  // null for the universal-debug, universal-release variants
        //         output.versionCodeOverride =
        //                 defaultConfig.versionCode * 1000 + versionCodes.get(abi)
        //     }
        // }
        if (variant.name == 'prodrelease') {
            variant.outputs.each { output ->
            output.versionCodeOverride = prodReleaseVersionCode
            }
        }
    }
}

// When updating from RN0.68 to RN0.69, the bundled assets were not being correctly copied
android.applicationVariants.all { variant ->
    // Ensure the JS bundle is copied to the assets folder for custom build types
    if (variant.buildType.name == 'sitrelease' || variant.buildType.name == 'prodrelease') {
        variant.mergeAssets.doLast {
            def bundleDir = file("${project.buildDir}/generated/assets/react/${variant.buildType.name}")
            def assetsDir = file("${buildDir}/intermediates/assets/${variant.dirName}")

            copy {
                from(bundleDir)
                into(assetsDir)
                include('index.android.bundle')
            }
        }
    }
}

dependencies {
    // The version of react-native is set by the React Native Gradle Plugin
    implementation("com.facebook.react:react-android")
    implementation fileTree(dir: "libs", include: ["*.jar"])

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

    implementation project(':react-native-iap')
    implementation project(':react-native-config')
    implementation project(':react-native-orientation-locker')
    implementation project(':react-native-nielsen-nzme')
    implementation ('com.google.android.gms:play-services-ads:22.6.0') //forced version above in 'configurations{}'

    // Import the Firebase BoM
    implementation platform('com.google.firebase:firebase-bom:30.4.0')

    // When using the BoM, you don't specify versions in Firebase library dependencies
    implementation 'com.google.firebase:firebase-crashlytics'
    implementation 'com.google.firebase:firebase-analytics'
    implementation 'com.google.firebase:firebase-perf'
    implementation 'com.google.firebase:firebase-messaging'

    implementation "com.android.support:appcompat-v7:${rootProject.ext.supportLibVersion}"
    implementation "com.google.android.gms:play-services-tagmanager:17.0.0"
    implementation "androidx.lifecycle:lifecycle-extensions:2.1.0"
    implementation 'com.facebook.soloader:soloader:0.10.5'
    implementation 'com.google.code.gson:gson:2.11.0'
    implementation 'androidx.work:work-runtime:2.7.1'

    // Animated GIF Support for RN <Image>
    implementation 'com.facebook.fresco:animated-gif:2.5.0'
    // WebP Support for RN <Image>
    implementation 'com.facebook.fresco:webpsupport:2.5.0'

    if (hermesEnabled.toBoolean()) {
        implementation("com.facebook.react:hermes-android")
    } else {
        implementation jscFlavor
    }
}

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

android/settings.gradle

AndroidManifest.xml

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions