Mobile Foundation Support for Android 11

We all know that Google I/O did not happen due to the ongoing pandemic, however, Google made sure developer previews and beta releases of Android 11 were made available to developers according to the schedule and finally the GA of Android 11 is here!.

Android 11 has come up with tons of new capabilities for developers such as conversation notifications, device and media controls, one-time permissions, enhanced 5G support, IME transitions, and so much more. For more details read What’s in Android 11.

In our previous blog post on Android 11, we had provided the results of our validation of Android 11 Beta 3. Today, we are happy to announce Day 0 support for Android 11.

Mobile Foundation Support for Android 11

We have validated all features and functionalities of Mobile Foundation v8 on Android 11 GA. Below SDK levels were used while validating Mobile Foundation support for Android 11.

ibmmobilefirstplatformfoundation@8.0.2020082715 ibmmobilefirstplatformfoundationjsonstore@8.0.2019103109 ibmmobilefirstplatformfoundationanalytics@8.0.2020081208 ibmmobilefirstplatformfoundationpush@8.0.2020051312
cordova-plugin-mfp@8.0.2020082809
cordova-plugin-mfp-jsonstore@8.0.2020072706
cordova-plugin-mfp-analytics@8.0.2020081211
cordova-plugin-mfp-push@8.0.2020072705

Notes

  1. After upgrading to Android 11, if the targetSdkVersion of the app is set to API Level ‘30’, while attempting to click send button from in-app feedback popup, app crashes with NullPointerException as stated below, due to the updates of toasts feature in android 11.
    2020-05-22 11:28:53.420 5298-5330/sample.com.pincodeandroid E/com.worklight.common.Logger$UncaughtExceptionHandler: Logger$UncaughtExceptionHandler.uncaughtException in Logger.java:491 :: Uncaught Exception
        java.lang.NullPointerException: Attempt to invoke virtual method 'android.view.View android.view.ViewGroup.getChildAt(int)' on a null object reference
            at com.worklight.analytics.feedback.EditFeedback.sendAppFeedback(EditFeedback.java:469)
            at com.worklight.analytics.feedback.EditFeedback.access$700(EditFeedback.java:53)
            at com.worklight.analytics.feedback.EditFeedback$3.onClick(EditFeedback.java:207)
            at android.view.View.performClick(View.java:7356)
            at android.view.View.performClickInternal(View.java:7333)
            at android.view.View.access$3600(View.java:807)
            at android.view.View$PerformClick.run(View.java:28200)
            at android.os.Handler.handleCallback(Handler.java:907)
            at android.os.Handler.dispatchMessage(Handler.java:99)
            at android.os.Looper.loop(Looper.java:223)
            at android.app.ActivityThread.main(ActivityThread.java:7476)
            at java.lang.reflect.Method.invoke(Native Method)
            at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:549)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:939)
    

    This issue has been fixed on the following levels of Mobile Foundation SDK.

    • Native android library: com.ibm.mobile.foundation:ibmmobilefirstplatformfoundationanalytics:8.0.2020081208
    • Cordova android plugin: cordova-plugin-mfp-analytics@8.0.2020081211 Please use the above levels which contains fix for this issue.
  2. Update 30 Sept 2020:

    This issue is seen only when running the app from Android Studio and not from a pre-built apk. For more details on this issue refer Known Limitations section. Also see this open issue on the Android Issue Tracker.

Issue in application Authenticity feature when app is built using gradle plugin >= v3.6.0 and gradle version >= v5.6.4. In our earlier blog post, we had mentioned about application authenticity breaking with certain versions of gradle & gradle plugin. We are continuing to work on providing a fix for this issue. Although, this is not related to Android 11 directly, please note the workarounds provided for app authenticity to work.

Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.
Last modified on October 29, 2020