skip to Main Content

After installing the npm add react-native-google-mobile-ads I got the error. I posted here the errors please check, Here I added my android build.gradle file and App level build.gradle file
*how can I specify compileSdkVersion? *

1: Task failed with an exception.
        -----------
        * Where:
        Build file 'C:UsersAdminDesktopReactNativeFirebasehellworldfirebaseeekklnode_modulesreact-native-google-mobile-adsandroidbuild.gradle' line: 75
        * What went wrong:
        A problem occurred evaluating project ':react-native-google-mobile-ads'.
        > Cannot get property 'googleMobileAdsJson' on extra properties extension as it does not exist
        * Try:
        > Run with --stacktrace option to get the stack trace.
        > Run with --info or --debug option to get more log output.
        > Run with --scan to get full insights.
        ==============================================================================
        2: Task failed with an exception.
        -----------
        * What went wrong:
        A problem occurred configuring project ':react-native-google-mobile-ads'.
        > compileSdkVersion is not specified. Please add it to build.gradle
        * Try:
        > Run with --stacktrace option to get the stack trace.
        > Run with --info or --debug option to get more log output.
        > Run with --scan to get full insights.

My APP (build.gradle file)

android {
        ndkVersion rootProject.ext.ndkVersion
    compileSdkVersion rootProject.ext.compileSdkVersion
     defaultConfig {
            applicationId "com.hellworldfirebaseeekkl"
            minSdkVersion rootProject.ext.minSdkVersion
            targetSdkVersion rootProject.ext.targetSdkVersion
            versionCode 1
            versionName "1.0"
            buildConfigField "boolean", "IS_NEW_ARCHITECTURE_ENABLED", isNewArchitectureEnabled().toString()
    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 "hellworldfirebaseeekkl_appmodules"

My android project build.gradle file

buildscript {
    ext {
        buildToolsVersion = "31.0.0"
        minSdkVersion = 21
        compileSdkVersion = 31
        targetSdkVersion = 31

        if (System.properties['os.arch'] == "aarch64") {
            // For M1 Users we need to use the NDK 24 which added support for aarch64
            ndkVersion = "24.0.8215888"
        } else {
            // Otherwise we default to the side-by-side NDK version from AGP.
            ndkVersion = "21.4.7075529"
        }
    }
    repositories {
        google()
        mavenCentral()

2

Answers


  1. Within the root of your React Native project, open the app.json file and add the android_app_id & ios_app_id keys with the IDs from the Google AdMob console:

    // <project-root>/app.json
    {
      "react-native-google-mobile-ads": {
        "android_app_id": "ca-app-pub-xxxxxxxx~xxxxxxxx",
        "ios_app_id": "ca-app-pub-xxxxxxxx~xxxxxxxx"
      }
    }
    

    Copy
    If you’re an expo user, make sure the react-native-google-mobile-ads block is outside of the expo block! It should look like this:

    // <project-root>/app.json
    {
      "expo": {
        // ...
      },
      "react-native-google-mobile-ads": {
        "android_app_id": "ca-app-pub-xxxxxxxx~xxxxxxxx",
        "ios_app_id": "ca-app-pub-xxxxxxxx~xxxxxxxx"
      }
    }
    

    Copy
    For the changes to take effect, rebuild your project:

    # For iOS
    npx pod-install
    npx react-native run-ios
    
    # For Android
    npx react-native run-android
    
    # For expo users not using EAS
    npx expo prebuild
    
    # For expo users using EAS
    npx eas-cli build --profile development
    

    More: https://docs.page/invertase/react-native-google-mobile-ads#setting-up-google-admob

    Login or Signup to reply.
  2. In my case I used test android_app_id provided by Google in my AdMob account and they caused crash. Then I found another testing ad ids:

    "react-native-google-mobile-ads": {
        "android_app_id": "ca-app-pub-3940256099942544~3347511713",
        "ios_app_id": "ca-app-pub-3940256099942544~1458002511"
      }
    

    and they worked.

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search