Skip to main content

Issue

A coroutine dependency error occurs during the build process with the following message.
Text

Cause

If the kotlinx-coroutines-core library version is 1.3.5 or later, the kotlin-stdlib library version must be at a certain level or later.

Solution

Check whether the kotlin-stdlib library version is v.1.3.70 or later with the gradlew dependencies command. If the version is earlier than v.1.3.70, you need to update it.

Issue

The “Manifest merger failed” error occurs during the build process.

Cause

The Airbridge SDK’s AndroidManifest.xml includes rules to opt out of backing up the Shared Preferences data. The purpose of this rule is to avoid retaining the same Airbridge settings during the reinstallation of the app so that new installs or reinstalls can be detected accurately.Merging Airbridge SDK backup rules with your app backup rules can cause conflicts.

Solution

Below are the opt-out rules defined in the Airbridge SDK.
Fix conflict with fullBackupContent=“string”
Adding android:fullBackupContent="string" to the AndroidManifest.xml file may cause an error like the following.
Build Output
To fix this error,
  • add xmlns:tools="http://schemas.android.com/tools" to the <manifest> tag
  • add tools:replace="android:fullBackupContent" to the <application> tag
in the AndroidManifest.xml file.
Fix conflict with dataExtractionRules=“string resource”
Adding android:dataExtractionRules="string resource" to the AndroidManifest.xml file may cause an error like the following.
Build Output
To fix this error,
  • add xmlns:tools="http://schemas.android.com/tools" to the <manifest> tag
  • add tools:replace="android:dataExtractionRules" to the <application> tag
in the AndroidManifest.xml file.
Fix conflict with allowBackup=“false”
Adding android:allowBackup="false" to the AndroidManifest.xml file may cause an error like the following.
Build Output
To fix this error,
  • add xmlns:tools="http://schemas.android.com/tools" to the <manifest> tag
  • add tools:replace="android:allowBackup" to the <application> tag
in the AndroidManifest.xml file.
If compileSdkVersion is lower than 31
The android:dataExtractionRules has been added in API Level 31. Therefore, if the compileSdkVersion is lower than 31, an error like the following may occur.
Build Output
To fix this error,
  • add xmlns:tools="http://schemas.android.com/tools" to the <manifest> tag
  • add tools:remove="android:dataExtractionRules" to the <application> tag
in the AndroidManifest.xml file.For more guidance, refer to the articles below.
NoticeAirbridge Android SDK 4.9.0 and above do not require backup rule configuration. Only proceed with this step if you are using a version below 4.9.0.

Why Configuration is Needed

The Airbridge Android SDK requires certain data to be excluded from backup to ensure accurate reinstall detection. For SDK versions below 4.9.0, this must be configured manually.

Configuration Methods

If android:allowBackup=”…” is included
  1. Add android:allowBackup to the tools:replace attribute of the <application> tag in AndroidManifest.xml. If there are other values, separate them with a comma (,). If there are no other values, do not use a comma.
If android:dataExtractionRules=”…” is included
  1. Add android:dataExtractionRules to the tools:replace attribute of the <application> tag in AndroidManifest.xml. If there are other values, separate them with a comma (,). If there are no other values, do not use a comma.
  1. Specify the backup rules file in android:dataExtractionRules="...". Add Airbridge exclusion rules to the backup rules file. (e.g., res/xml/data_extraction_rules.xml)
If android:fullBackupContent=”…” is included
  1. Add android:fullBackupContent to the tools:replace attribute of the <application> tag in AndroidManifest.xml. If there are other values, separate them with a comma (,). If there are no other values, do not use a comma.
  1. Specify the backup rules file in android:fullBackupContent="...". Add Airbridge exclusion rules to the backup rules file. (e.g., res/xml/backup_rules.xml) Note that android:fullBackupContent="false" means there is no backup rules file, so you do not need to add the rules below.

Caution

When adding values to the tools:replace attribute of the <application> tag, if there is a space after the comma (,), it may cause build errors in some Android Gradle Plugin (AGP) versions. Please be aware.

Issue

If an Airbridge SDK backup rule and a backup rule for a different third-party SDK (e.g., AppsFlyer SDK) overlap, you will see the build error below.

Cause

Overlapping of the Airbridge SDK backup rules and third-party SDK backup rules can cause build errors.

Solution

Follow these steps to consolidate all SDK backup rules into one file.
  1. Create a backup rules file under the res/xml folder. If a file already exists, only add the Airbridge content.
    • For Android 11 and below: backup_rules.xml
  • For Android 12 and above: data_extraction_rules.xml
  1. Add android:allowBackup to the tools:replace attribute of the <application> tag in AndroidManifest.xml. If there are other values, separate them with a comma (,). If there are no other values, do not use a comma.

Caution

When adding values to the tools:replace attribute of the <application> tag, if there is a space after the comma (,), it may cause build errors in some Android Gradle Plugin (AGP) versions. Please be aware.

Issue

GAID is being collected as 00000000-0000-0000-0000-000000000000 even though LAT (Limited Ad Tracking) is deactivated.

Cause

The AD_ID permission has been excluded due to other third-party libraries.

Solution

Add AD_ID permission.

Issue

When setting android:allowBackup="false", the following build error appears.

Cause

This issue may occur due to differences in the Manifest Merger’s parsing behavior depending on the version of the Android Gradle Plugin (AGP).In certain AGP versions, the parser fails to automatically trim whitespace following a comma (,) when interpreting the tools:replace="..." attribute in AndroidManifest.xml. In this scenario, the string containing the whitespace is incorrectly recognized as a distinct, invalid attribute key. Consequently, the attribute replacement rules may fail to apply, or build errors may occur due to duplicate declarations.

Solution

To resolve this issue, remove all spaces within the tools:replace attribute value and perform a Clean Build.