Giter Club home page Giter Club logo

appboy-segment-android's Introduction

appboy-segment-android's People

Contributors

briancaw avatar bryanlogan avatar bucimis avatar chshapiro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

appboy-segment-android's Issues

Crash after upgrade to 9.0.0

Hi teams,

I had updated to latest appboy segment integration into 9.0.0, but after that, I got error this..

Caused by java.lang.AssertionError
Could not create instance of e.e.a.p.a. java.lang.NoSuchMethodException: e.e.a.p$a.<init> [interface java.util.Map]
com.segment.analytics.ValueMap.createValueMap (ValueMap.java:70)
com.segment.analytics.ValueMap.coerceToValueMap (ValueMap.java:343)
com.segment.analytics.ValueMap.getList (ValueMap.java:358)
com.segment.analytics.Properties.products (Properties.java:366)
com.segment.analytics.android.integrations.appboy.AppboyIntegration.track (AppboyIntegration.java:264)

on our gradle use segment version
implementation('com.segment.analytics.android:analytics:4.7.0')

Do you know why?

By the way, this error only happen on release build

Thanks..

Braze/Appboy device-mode destination is ignoring the product_id field on the 'Order Completed' event.

Copied from segmentio/analytics-react-native#277

Hello,

Upon sending the payload below, for the event 'Order Completed', I am getting the error The productId is empty, not logging in-app purchase to Appboy. in android's logcat. This is with verbose logging enabled on Appboy. It's not showing up on Braze's dashboard either.

Interestingly, if I added id alongside the product_id inside the products array, it will log the purchases properly, without the above error

Analytics.track('Order Completed', {
  "app_mode": "Regular",
  "categories": [
    null,
    null
  ],
  "discount": 18.75,
  "first_order": false,
  "line_item_count": 2,
  "order_number": "R270573084",
  "payment_method": "cash on delivery",
  "products": [
    {
      "id": "27", // if I remove this field, purchases don't logged, but the v2 spec said the field is called product_id, not id
      "brand": null,
      "category": null,
      "image_url": "https://d34e5984yv831d.cloudfront.net/spree/images/attachments/000/000/007/product/open-uri20170530-4-16z7kba?1496181795",
      "locale": "en",
      "name": "Neutrogena  Visibly Clear 2In1 Wash 150ml",
      "price": 35.5,
      "product_id": "27", // if I add id: "27" as well in the products array, the purchases would get logged.
      "product_name": null,
      "quantity": 1,
      "url": "https://sandbox.danube.sa/en/products/27"
    },
    {
      "id": "2621", // if I remove this field, purchases don't logged, but the v2 spec said the field is called product_id, not id
      "brand": null,
      "category": null,
      "image_url": "https://d34e5984yv831d.cloudfront.net/spree/images/attachments/000/002/563/product/open-uri20170530-4-s76690?1496183783",
      "locale": "en",
      "name": "Nova Drinking Water 0.6 Ltr",
      "price": 152,
      "product_id": "2621", // if I add id: "2621" as well in the products array, the purchases would get logged.
      "product_name": null,
      "quantity": 1,
      "url": "https://sandbox.danube.sa/en/products/2621"
    }
  ],
  "shipping": 19,
  "shipping_method": "Home Delivery",
  "status": "order placed",
  "subtotal": 187.5,
  "total": 187.75
})

I created the above payload based on this document: https://segment.com/docs/connections/spec/ecommerce/v2/

Platform: react-native, Android

Android Appboy SDK version: +--- com.appboy:android-sdk-base:{strictly 12.0.0} -> 12.0.0 (c)
Android Segment Analytics version: +--- com.segment.analytics.android:analytics:{strictly 4.9.1-beta} -> 4.9.1-beta (c)
React Native react-native-appboy-sdk: 1.26.0
React Native @segment/analytics-react-native-appboy: 1.4.1

I've only tested this on Android. I'll update this issue once I've tested this on iOS.

Extra note: Niall Brennan from segment dropped a note from Segment support that the issue may be related to this line. https://github.com/Appboy/appboy-segment-android/blob/master/appboy-segment-integration/src/main/java/com/segment/analytics/android/integrations/appboy/AppboyIntegration.java#L263

EDIT: Worth noting that it's completely ignoring the quantity field, too - if quantity is 3, it shows up in the dashboard as 1, but I guess that means a ticket rename or a new ticket is needed? Leaving it here so that I remember.

EDIT2: We've decided to integrate directly for this event. See #25 (comment) for further info.

Segment analytics android 4.3.0 "No virtual method logCustomEvent" crash with appboy android-sdk-ui version >= 2.1

Using these versions of the libraries, the app crashes

compile 'com.segment.analytics.android:analytics:4.3.0'
compile 'com.appboy:android-sdk-ui:2.2.4'

CrashLog:

after read

  • Analytics: Ran TrackPayload{event="Application Updated"} on integration Segment.io in 2630154 ns.
  • Analytics-Appboy: Calling appboy.logCustomEvent for event Application Updated with properties {"version":"version-of-the-app","build":37,"previous_version":"previous.version-of-the-app","previous_build":36}.
  • FATAL EXCEPTION: main
    Process: com.myapp.android.client.dev, PID: 9591
    java.lang.NoSuchMethodError: No virtual method logCustomEvent(Ljava/lang/String;Lcom/appboy/models/outgoing/AppboyProperties;)Z in class Lcom/appboy/Appboy; or its super classes (declaration of 'com.appboy.Appboy' appears in /data/app/com.myapp.android.client.dev-1/base.apk:classes32.dex)
    at com.segment.analytics.android.integrations.appboy.AppboyIntegration.track(AppboyIntegration.java:241)
    at com.segment.analytics.IntegrationOperation$10.run(IntegrationOperation.java:176)
    at com.segment.analytics.Analytics.performRun(Analytics.java:1463)
    at com.segment.analytics.Analytics$10.run(Analytics.java:824)
    at android.os.Handler.handleCallback(Handler.java:751)
    at android.os.Handler.dispatchMessage(Handler.java:95)
    at android.os.Looper.loop(Looper.java:154)
    at android.app.ActivityThread.main(ActivityThread.java:6077)
    at java.lang.reflect.Method.invoke(Native Method)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:866)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:756)

I already tried some versions of com.appboy:android-sdk-ui, its currently working with 2.0.4, but if I change to 2.1.0 or another one more recent, it always crashes

Analytics Android 4.3.0 is not supported – results in a crash on start

appboy-segment-integration 2.1.0 crashes with analytics-android 4.3.0

build.gradle

implementation 'com.appboy:appboy-segment-integration:2.1.0'
implementation 'com.segment.analytics.android:analytics:4.3.0'

Crashlog

On this line: https://github.com/Appboy/appboy-segment-android/blob/master/src/main/java/com/segment/analytics/android/integrations/appboy/AppboyIntegration.java#L206

E/AndroidRuntime: FATAL EXCEPTION: main
                  Process: com.takescoop.android.dogfood, PID: 12123
                  java.lang.ClassCastException: com.segment.analytics.ValueMap cannot be cast to com.segment.analytics.Properties
                      at com.segment.analytics.android.integrations.appboy.AppboyIntegration.track(AppboyIntegration.java:206)
                      at com.segment.analytics.IntegrationOperation$10.run(IntegrationOperation.java:186)
                      at com.segment.analytics.Analytics.performRun(Analytics.java:1463)
                      at com.segment.analytics.Analytics$10.run(Analytics.java:824)
                      at android.os.Handler.handleCallback(Handler.java:739)
                      at android.os.Handler.dispatchMessage(Handler.java:95)
                      at android.os.Looper.loop(Looper.java:145)
                      at android.app.ActivityThread.main(ActivityThread.java:5835)
                      at java.lang.reflect.Method.invoke(Native Method)
                      at java.lang.reflect.Method.invoke(Method.java:372)
                      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
                      at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)

NPE Crash in a activity that have the fragment AppboyFeedFragment()

Hello,

I'm using
com.appboy:appboy-segment-integration:2.1.1
com.zendesk:support:2.0.0

I had this crash, do you guys have any information about this?

It's in a screen where I have an Activity with AppboyFeedFragment() and implement IFeedClickActionListener

Fatal Exception: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.android/com.app.android.ui.FeedActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void java.util.concurrent.ThreadPoolExecutor.execute(java.lang.Runnable)' on a null object reference
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3003)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3064)
at android.app.ActivityThread.-wrap14(ActivityThread.java)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1659)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6816)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1563)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1451)

Update Braze sdk to 10.0.0

Latest Braze sdk is 10.0.0, but this project is still using sdk 9.0.0.

When could we expect this library to be updated?

Thanks in advance

Version 23.0.1 available

Hi,

Thank you so much for the hard work.
We are using bundled SDK in our projects and were testing the Android13 related changes. Recently our QA team flagged one issue that we are not receiving the push notifications unless we relaunch the app.
We find out there there's new version available with the potential fix here
We would request you to please update the library as soon as possible as its blocking our further test cases and might impact our release and timelines as well.

Hoping to receive the feedback early as possible :)

Integration with Segment but is trying to catch the API from appboy.xml

Hello,

I'm using
com.appboy:appboy-segment-integration:2.1.1
com.zendesk:support:2.0.0

In the last 2 days I had a few crashes in production in the Android OS 5.1.1, 6.0, 6.0.1 and 7.1.1 in the brands LGE, ZTE, Motorola, Alco and others.

Isn't the segment supposed to support braze with the needed information for the configuration?

Fatal Exception: java.lang.RuntimeException: Unable to read the Braze API key from the res/values/appboy.xml file. See log for more details.
at com.appboy.configuration.AppboyConfigurationProvider.getAppboyApiKey(SourceFile:199)
at com.appboy.Appboy.e(SourceFile:299)
at com.appboy.Appboy.f(SourceFile:77)
at com.appboy.Appboy$18.run(SourceFile:275)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)

Standard user attributes are tracked as custom attributes.

In identify(), birthday, email, firstName, lastName, gender, phone, and address are set to the standard user attributes. After that, it loops traits object and sets all traits as a custom attributes without filtering the standard trait keys. As a result, I can see these standard attributes are tracked as custom attributes too.

braze_custom_attributes

For iOS integration, standard attributes are filtered out when setting the custom attributes as you can see (https://github.com/Appboy/appboy-segment-ios/blob/master/Pod/Classes/SEGAppboyIntegration.m#L139). So, android integration should be fixed.

unable to disable automatic_in_app_message_registration_enabled

Apologies if this is a segment issue

When the Enable Automatic In-App Message Registration is disabled in the segment dashboard, the value is omitted from the ValueMap settings which results in the default value of true being used.

Screenshot 2019-08-27 at 14 09 03

This ultimately means it's impossible to disable the in app message registration (without manually copying the integration).

Is this a known issue, or perhaps there's some misconfiguration on my side?

Thanks!

session start is not tracked

openSession() is called in the “onActivityStarted” method but “onActivityStarted” is never called when the app is opened after being closed. Therefore, session start is never tracked for the user launches the app if the user has force-quit it

https://github.com/Appboy/appboy-segment-android/blob/master/src/main/java/com/segment/analytics/android/integrations/appboy/AppboyIntegration.java#L261

Can it be fixed by calling openSession() right after Appboy instance is created?

https://github.com/Appboy/appboy-segment-android/blob/master/src/main/java/com/segment/analytics/android/integrations/appboy/AppboyIntegration.java#L71

Manual In-App Message Registration & Segment Integration

Hi,

I ran into an issue where we wanted to defer In-App messages to show up on specific Activities.
(Messages showed up behind our login dialog and would never be visible on first boot)

This is relatively easy when following the manual registration steps as defined here: https://www.braze.com/documentation/Android/#in-app-messaging, but when using this segment integration there is no way I could find to avoid these methods doing registration automatically:

public class AppboyIntegration extends Integration<Appboy> {
  ...
 public void onActivityResumed(Activity activity) {
        super.onActivityResumed(activity);
        AppboyInAppMessageManager.getInstance().registerInAppMessageManager(activity);
    }

    public void onActivityPaused(Activity activity) {
        super.onActivityPaused(activity);
        AppboyInAppMessageManager.getInstance().unregisterInAppMessageManager(activity);
    }
...

For now I just went ahead and wrote my own custom version of AppboyIntegration that doesn't override these methods and that is working perfectly, but it would be nice if there was an easier way to achieve this via configuration.

Braze 6.0.0 is still present in the version 5.0.0

Hi, accordingly to the change logs [https://github.com/Appboy/appboy-segment-android/blob/master/CHANGELOG.md#breaking], we should have the Braze SDK 8.1.0 to be included but I still find it is still the version 6. Is there any provision on this integration ? Thanks.

Enable handle push deeplink

Currently, since the integration is doing the init on the Braze singleton, and this can be done only once, we have no way of "cleanly" enabling the "handle push deeplink" feature.

In the mean time I did the following "hack":

application.getSharedPreferences("com.appboy.override.configuration.cache", 0).edit {
    putBoolean("com_appboy_handle_push_deep_links_automatically", true)
}

inside the integration ready callback to overwrite the value.

Would be nice to have the on/off toggle in the segment dashboard

Upgrade Braze SDK to v13.1.2

Hi @Bucimis Jared and team,
Any possibility we could upgrade the Braze SDK to v13.1.2 as per recommendation from Braze team (captured below) ? If yes, could you please let us know when we could get the updated SDK ?
I understand that we have upgraded to v13.1.1 but the v13.1.2 has been released and recommended.
Thanks a lot.
Screen Shot 2021-04-08 at 9 55 12 AM

Will there be Xamarin support?

Hello ,

We are integrating Braze through Segment in our Xamarin Forms project.
Will you provide Xamarin bindings for this repository?

If not you could you please provide instructions how can we achieve the same behavior ? Please update documentation for this feature through Xamarin as well.

Related : Appboy/appboy-segment-ios#47

💡 Suggestion: Avoid third-party model dependency

🗒️ Context

I think an SDK must reduce the dependencies with another dependencies. It is a good idea to avoid usage of RemoteMessage in braze functions inside BrazeFirebaseMessagingService. I mean is better to just pass what you are going to use.

😭 My problem

In my case, I'm using this library as a component that belong to my background message layer. My problem is the way that you use a firebase model force me to include firebase in my Braze component.

🧰 Example of potencial improvements:

Function: isBrazePushNotification

fun isBrazePushNotification(remoteMessage: RemoteMessage): Boolean {
    val remoteMessageData = remoteMessage.data
    return "true" == remoteMessageData[Constants.BRAZE_PUSH_BRAZE_KEY]
}

💡 Suggestion:

fun isBrazePushNotification(data: Map<String, String>): Boolean {
    return "true" == data[Constants.BRAZE_PUSH_BRAZE_KEY]
}

Function: handleBrazeRemoteMessage

fun handleBrazeRemoteMessage(context: Context, remoteMessage: RemoteMessage): Boolean {
    if (!isBrazePushNotification(remoteMessage)) {
        brazelog(I) { "Remote message did not originate from Braze. Not consuming remote message: $remoteMessage" }
        return false
    }
    val remoteMessageData = remoteMessage.data
    brazelog(I) { "Got remote message from FCM: $remoteMessageData" }
    val pushIntent = Intent(BrazePushReceiver.FIREBASE_MESSAGING_SERVICE_ROUTING_ACTION)
    val bundle = Bundle()
    for ((key, value) in remoteMessageData) {
        brazelog(V) { "Adding bundle item from FCM remote data with key: $key and value: $value" }
        bundle.putString(key, value)
    }
    pushIntent.putExtras(bundle)
    BrazePushReceiver.handleReceivedIntent(context, pushIntent)
    return true
}

💡 Suggestion:

fun handleBrazeRemoteMessage(context: Context, data: Map<String, String>): Boolean {
    if (!isBrazePushNotification(data)) {
        brazelog(I) { "Remote message did not originate from Braze. Not consuming remote message: $remoteMessage" }
        return false
    }
    brazelog(I) { "Got remote message from FCM: $data" }
    val pushIntent = Intent(BrazePushReceiver.FIREBASE_MESSAGING_SERVICE_ROUTING_ACTION)
    val bundle = Bundle()
    for ((key, value) in data) {
        brazelog(V) { "Adding bundle item from FCM remote data with key: $key and value: $value" }
        bundle.putString(key, value)
    }
    pushIntent.putExtras(bundle)
    BrazePushReceiver.handleReceivedIntent(context, pushIntent)
    return true
}

Token Registration issue after Braze SDK update

Hello there.
After updating appboy-segment bundled SDK to v13.0.0 with android 13 changes from braze, we are facing an issue in FCM token registration for the first time. On detailed debugging and analysis we find out that this method onNewToken in BrazeFirebaseMessagingService is not invoked for the very first time (in some cases it's not getting invoked even after the first time). Although this method should invoke whenever there's a new token and because that token is not getting registered on Braze that results in no push notifications getting received by the end-user and the user have to kill the app and restart the session multiple times to receive a push notification that is not a good user experience.
It would be super helpful if you guys can look into this issue on top priority.

PS. I have also updated SDK to 14.0.0 but still facing the same issue.

Proposed changes: To resolve this issue, we are setting the FCM token by explicitly calling this method setRegisteredPushToken. Please let me know your thoughts on this resolution. For getting FCM token we are using Firebase BoM with version 28.3.0 for messaging SDK.

Code snippet:

FirebaseMessaging.getInstance().getToken().addOnCompleteListener(task -> {
   if (task.isSuccessful()) {
      braze.setRegisteredPushToken(task.getResult());
   }
});

Segment Integration | Trying to fetch keys from appboy.xml | Polluting stacktrace

Hello Team 👋

I'm using Appboy with Segment integration. This is my appboy configuration implementation in the main application:

    AppboyConfig appboyConfig = new AppboyConfig.Builder()
        .setIsFirebaseCloudMessagingRegistrationEnabled(true)
        .setFirebaseCloudMessagingSenderIdKey(firebaseConfig.projectNumber)
        .setHandlePushDeepLinksAutomatically(true)
        .build();
    Appboy.configure(this, appboyConfig);
    registerActivityLifecycleCallbacks(new AppboyLifecycleCallbackListener(true, true));

I'm using the library version 7.0.0: com.appboy:appboy-segment-integration:7.0.0

Scenario:

For the pre-login experience, I'm seeing a high number of error logs in stacktrace generated by Appboy. It's trying to fetch the API keys from res/values/appboy.xml which doesn't exist in my case because the segment SDK fetches the keys for me. What could be the reason? 🤔

Ps: It's not a crash but I'm seeing a Fatal Exception: java.lang.OutOfMemoryError: pthread_create (1040KB stack) failed: Try again exception on crashlytics for one or two users. I hope it's not related to this. 💥

Stacktrace:

My stacktrace is filled with them. I have only pasted a few of them. 🗑️

I/Appboy v10.0.0 .com.appboy.Appboy: Appboy outbound network requests are now enabled
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: ****************************************************
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **                                                **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **                 !! WARNING !!                  **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **                                                **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **     No API key set in res/values/appboy.xml    **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: ** No cached API Key found from Appboy.configure  **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **          Braze functionality disabled          **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **                                                **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: ****************************************************
E/Appboy v10.0.0 .com.appboy.Appboy: Caught exception while retrieving API key.
    java.lang.RuntimeException: Unable to read the Braze API key from the res/values/appboy.xml file or from runtime configuration via AppboyConfig. See log for more details.
        at com.appboy.configuration.AppboyConfigurationProvider.getAppboyApiKey(SourceFile:35)
        at com.appboy.Appboy.getConfiguredApiKey(SourceFile:1)
        at com.appboy.Appboy.getInstance(SourceFile:6)
        at com.appboy.ui.inappmessage.AppboyInAppMessageManager.ensureSubscribedToInAppMessageEvents(AppboyInAppMessageManager.java:132)
        at com.appboy.AppboyLifecycleCallbackListener.onActivityCreated(AppboyLifecycleCallbackListener.java:153)
        at android.app.Application.dispatchActivityCreated(Application.java:375)
        at android.app.Activity.dispatchActivityCreated(Activity.java:1382)
        at android.app.Activity.onCreate(Activity.java:1655)
        at androidx.core.app.ComponentActivity.onCreate(ComponentActivity.java:85)
        at androidx.activity.ComponentActivity.onCreate(ComponentActivity.java:314)
        at org.edx.mobile.view.SplashActivity.onCreate(SplashActivity.java:30)
        at android.app.Activity.performCreate(Activity.java:8142)
        at android.app.Activity.performCreate(Activity.java:8114)
        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1309)
        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3549)
        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3748)
        at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
        at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2187)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:236)
        at android.app.ActivityThread.main(ActivityThread.java:8057)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)
        
I/Appboy v10.0.0 .com.appboy.Appboy: Firebase Cloud Messaging found. Setting up Firebase Cloud Messaging.
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: ****************************************************
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **                                                **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **                 !! WARNING !!                  **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **                                                **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **     No API key set in res/values/appboy.xml    **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: ** No cached API Key found from Appboy.configure  **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **          Braze functionality disabled          **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **                                                **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: ****************************************************
E/Appboy v10.0.0 .com.appboy.Appboy: Failed to startup user dependency manager.
    java.lang.RuntimeException: Unable to read the Braze API key from the res/values/appboy.xml file or from runtime configuration via AppboyConfig. See log for more details.
        at com.appboy.configuration.AppboyConfigurationProvider.getAppboyApiKey(SourceFile:35)
        at bo.app.q4.<init>(SourceFile:3)
        at com.appboy.Appboy.h(SourceFile:3)
        at com.appboy.Appboy.$r8$lambda$LNLRr-BQWVG2_sF6UwoY_xQi_vY(Unknown Source:0)
        at com.appboy.Appboy$$ExternalSyntheticLambda32.run(Unknown Source:2)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:923)
E/Appboy v10.0.0 .com.appboy.Appboy: Cannot publish error on null publisher. This is usually the result of a missing API key.
    java.lang.RuntimeException: Unable to read the Braze API key from the res/values/appboy.xml file or from runtime configuration via AppboyConfig. See log for more details.
        at com.appboy.configuration.AppboyConfigurationProvider.getAppboyApiKey(SourceFile:35)
        at bo.app.q4.<init>(SourceFile:3)
        at com.appboy.Appboy.h(SourceFile:3)
        at com.appboy.Appboy.$r8$lambda$LNLRr-BQWVG2_sF6UwoY_xQi_vY(Unknown Source:0)
        at com.appboy.Appboy$$ExternalSyntheticLambda32.run(Unknown Source:2)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:923)
        
I/Appboy v10.0.0 .com.appboy.Appboy: Appboy outbound network requests are now enabled
W/Appboy v10.0.0 .com.appboy.Appboy: API key not present. Not performing action on SDK.
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: ****************************************************
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **                                                **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **                 !! WARNING !!                  **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **                                                **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **     No API key set in res/values/appboy.xml    **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: ** No cached API Key found from Appboy.configure  **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **          Braze functionality disabled          **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **                                                **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: ****************************************************
E/Appboy v10.0.0 .com.appboy.Appboy: Caught exception while retrieving API key.
    java.lang.RuntimeException: Unable to read the Braze API key from the res/values/appboy.xml file or from runtime configuration via AppboyConfig. See log for more details.
        at com.appboy.configuration.AppboyConfigurationProvider.getAppboyApiKey(SourceFile:35)
        at com.appboy.Appboy.getConfiguredApiKey(SourceFile:1)
        at com.appboy.Appboy.getInstance(SourceFile:6)
        at com.appboy.AppboyLifecycleCallbackListener.onActivityStarted(AppboyLifecycleCallbackListener.java:121)
        at android.app.Application.dispatchActivityStarted(Application.java:408)
        at android.app.Activity.dispatchActivityStarted(Activity.java:1414)
        at android.app.Activity.onStart(Activity.java:1907)
        at org.edx.mobile.view.Hilt_SplashActivity.onStart(Unknown Source:0)
        at org.edx.mobile.view.SplashActivity.onStart(SplashActivity.java:58)
        at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1435)
        at android.app.Activity.performStart(Activity.java:8173)
        at android.app.ActivityThread.handleStartActivity(ActivityThread.java:3602)
        at android.app.servertransaction.TransactionExecutor.performLifecycleSequence(TransactionExecutor.java:221)
        at android.app.servertransaction.TransactionExecutor.cycleToPath(TransactionExecutor.java:201)
        at android.app.servertransaction.TransactionExecutor.executeLifecycleState(TransactionExecutor.java:173)
        at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:97)
        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2187)
        at android.os.Handler.dispatchMessage(Handler.java:106)
        at android.os.Looper.loop(Looper.java:236)
        at android.app.ActivityThread.main(ActivityThread.java:8057)
        at java.lang.reflect.Method.invoke(Native Method)
        at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:620)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1011)
        
W/Appboy v10.0.0 .com.appboy.Appboy: API key not present. Not performing action on SDK.
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: ****************************************************
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **                                                **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **                 !! WARNING !!                  **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **                                                **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **     No API key set in res/values/appboy.xml    **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: ** No cached API Key found from Appboy.configure  **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **          Braze functionality disabled          **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: **                                                **
W/Appboy v10.0.0 .com.appboy.configuration.AppboyConfigurationProvider: ****************************************************
E/Appboy v10.0.0 .com.appboy.Appboy: Failed to startup user dependency manager.
    java.lang.RuntimeException: Unable to read the Braze API key from the res/values/appboy.xml file or from runtime configuration via AppboyConfig. See log for more details.
        at com.appboy.configuration.AppboyConfigurationProvider.getAppboyApiKey(SourceFile:35)
        at bo.app.q4.<init>(SourceFile:3)
        at com.appboy.Appboy.h(SourceFile:3)
        at com.appboy.Appboy.$r8$lambda$LNLRr-BQWVG2_sF6UwoY_xQi_vY(Unknown Source:0)
        at com.appboy.Appboy$$ExternalSyntheticLambda32.run(Unknown Source:2)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:923)
E/Appboy v10.0.0 .com.appboy.Appboy: Cannot publish error on null publisher. This is usually the result of a missing API key.
    java.lang.RuntimeException: Unable to read the Braze API key from the res/values/appboy.xml file or from runtime configuration via AppboyConfig. See log for more details.
        at com.appboy.configuration.AppboyConfigurationProvider.getAppboyApiKey(SourceFile:35)
        at bo.app.q4.<init>(SourceFile:3)
        at com.appboy.Appboy.h(SourceFile:3)
        at com.appboy.Appboy.$r8$lambda$LNLRr-BQWVG2_sF6UwoY_xQi_vY(Unknown Source:0)
        at com.appboy.Appboy$$ExternalSyntheticLambda32.run(Unknown Source:2)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:923)
I/Appboy v10.0.0 .com.appboy.Appboy: Firebase Cloud Messaging found. Setting up Firebase Cloud Messaging.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.