A coroutine dependency error occurs during the build process with the following message.
java.lang.NoClassDefFoundError: kotlin/coroutines/AbstractCoroutineContextKey
at java.base/java.lang.ClassLoader.defineClass1(Native Method)
at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1016)
...
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.
Check whether the kotlin-stdlib library version is 1.3.70 or later with the gradlew dependencies
command. If the version is earlier than 1.3.70, you need to update it.
Deeplink Open events that occur through the push notifications generated by the Braze SDK are not collected by Airbridge. Instead, the App Open event is collected.
The Airbridge Android SDK uses the dataString
in the action
and intent
of the Activity
to distinguish between Deeplink Open events and App Open events.
When a user opens the app through a push notification using the Braze SDK, the app goes through an activity called NotificationTrampolineActivity
. This activity handles push notifications, but the dataString
is not included in its action
and intent
, preventing the SDK from determining if it's a Deeplink Open event or an App Open event.
The problem can be solved using the code snippet below for Airbridge Android SDK versions v2.21.5 and later.
val option = AirbridgeOptionBuilder("YOUR_APP_NAME", "YOUR_APP_SDK_TOKEN")
.setLifecycleIntegration {
it.takeIf { it.javaClass.name == "com.braze.push.NotificationTrampolineActivity" }
?.run { intent?.extras?.getString("uri") }
}
.build()
Airbridge.initializeSDK(application, option)
AirbridgeOption option = new AirbridgeOptionBuilder("YOUR_APP_NAME", "YOUR_APP_SDK_TOKEN")
.setLifecycleIntegration(new AirbridgeLifecycleIntegration() {
@Nullable
@Override
public String getDataString(@NonNull Activity activity) {
if (activity.getClass().getName().equals("com.braze.push.NotificationTrampolineActivity")
&& activity.getIntent() != null
&& activity.getIntent().getExtras() != null) {
return activity.getIntent().getExtras().getString("uri");
}
return null;
}
})
})
.build();
Airbridge.initializeSDK(application, option);
The "Manifest merger failed" error occurred during the build process.
When using Auto Backup
in the Android app, theAuto Backup Rules
must be defined. A conflict may occur with airbridge_auto_backup_rules.xml
, which is defined to prevent the automatic duplication of data within the Airbridge Android SDK, causing the "Manifest Merger Failed" error.
The Auto Backup Rules
defined by the Airbridge SDK are as follows. Add an XML file containing the content below to the project.
<?xml version="1.0" encoding="utf-8"?>
<full-backup-content>
<exclude domain="sharedpref" path="airbridge-internal" />
<exclude domain="sharedpref" path="airbridge-install" />
<exclude domain="sharedpref" path="airbridge-user-info" />
<exclude domain="sharedpref" path="airbridge-user-alias" />
<exclude domain="sharedpref" path="airbridge-user-attributes" />
<exclude domain="database" path="airbridge.db" />
</full-backup-content>
Add the following in the AndroidManifest.xml
.
<application
...
android:allowBackup="true"
android:fullBackupContent="@xml/<CUSTOM_BACKUP_RULES>"
tools:replace="android:fullBackupContent">
...
</application>
For more guidance, refer to the articles below.
GAID is being collected as 00000000-0000-0000-0000-000000000000 even though LAT (Limited Ad Tracking) is deactivated.
The AD_ID permission has been excluded due to other third-party libraries.
Add AD_ID permission.
<manifest ...>
...
<uses-permission android:name="com.google.android.gms.permission.AD_ID" />
...
</manifest>
Was this page helpful?