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?
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
What happened?
Getting below error when trying to build android
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.
Execution failed for task ':react-native-google-mobile-ads:compileDebugKotlin'.
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: falseAre your 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
android/app/build.gradle
android/settings.gradle
AndroidManifest.xml