Known issues

R8 issues with Android Gradle plugin 3.5.0

The R8 compiler is now used by default to perform compile-time code optimizations. R8 is more aggressive in its optimizations than Proguard was, and removes some code that is required by the Support SDK to function correctly. In an upcoming release we will add rules to keep these classes in our consumer Proguard rules (which are used by R8).

If you experience unexpected issues with the Support SDK after enabling R8 or upgrading to Android Studio 3.5.0 (or Android Gradle plugin 3.5.0), add these rules to your Proguard config:

-keep class zendesk.core.AuthenticationRequestWrapper { *; }
-keep class zendesk.core.PushRegistrationRequestWrapper { *; }
-keep class zendesk.core.PushRegistrationRequest { *; }
-keep class zendesk.core.PushRegistrationResponse { *; }
-keep class zendesk.core.ApiAnonymousIdentity { *; }
-keep class { *; }
-keep class { *; }
-keep class { *; }
-keep class { *; }
-keep class { *; }
-keep class { *; }

If the issues persist, please let us know at

Theming issues with 2.3.0

There is a problem with the Light variants of ZendeskSdkTheme on version 2.3.0 which causes some UI elements (such as the "See all x articles" button on HelpCenterActivity) to display incorrectly. To work around this issue, inherit directly from Theme.MaterialComponents.Light instead of ZendeskSdkTheme.Light.

As of version 2.3.1 this issue has been fixed.

Support SDK 2.1.0 Gradle build error

A problem in our release tooling caused the 2.1.0 artifact to become corrupted. Attempting to build your app with version 2.1.0 will cause a Gradle build error due to a missing dependency. While the 2.1.0 artifact has been pulled from our repo, anyone who has already downloaded it may still have it stored in their Gradle cache. 2.1.0 is unsupported and should not be used. We have released version 2.1.1 instead, which fixes the build error.

Support SDK 2.0.0-2.2.1 is incompatible with Picasso 2.71828

Version 2 of the Support SDK uses Picasso 2.5.2. The newest Picasso release, 2.71828, contains breaking changes to the API, so attempting to use both 2.5.2 and 2.71828 in the same app will cause compile and/or runtime errors as Gradle will resolve to the newer version. In order to support users on 2.71828, we published compatibility builds for each release, adding a -PCOMP suffix. See our release notes for the exact version names.

As of version 2.3.0, we use a Picasso compatibility library so this is no longer a concern.

Closed tickets still shown in the request list even when disabled on back-end

Version 2.0.0 added the display of closed tickets in the request list screen. A setting in the SDK admin page in the back-end allows you to disable the showing of closed tickets. A bug in the SDK causes these closed tickets to still be shown in the list even if the setting is enabled, until the ticket itself is viewed. Tapping into one of these tickets to view the comments will cause the correct state to be loaded, and the ticket removed from the request list.

As of version 2.3.0, this bug has been fixed.

Maximum number of results in HelpCenterActivity

The network response that powers HelpCenterActivity has a maximum of 11 categories, with a maximum of 10 sections for each category. Each section in the response has a maximum of 5 articles, and a "See all articles" button is added if there are more sections in the back-end. Tapping the button will load any remaining articles into the section.

These limits were chosen to ensure maximum reliability and scalability while still meeting the needs of the majority of our customers. If your Help Center has more categories or sections than these limits will allow, consider prioritizing the most important content for mobile and filtering for labels, sections, or categories when configuring HelpCenterActivity.

Layout issues with text input box on RequestActivity after error Snackbars on API <21

This is an intermittent issue caused by an issue in the Android support library. The text input box on RequestActivity is pushed up by an error Snackbar, but in some cases does not return to its original position after the Snackbar has disappeared.

Compilation errors when using AAPT rather than AAPT2

AAPT2 was made default in version 3.0 of the Android Gradle plugin. If you have chosen to disable it, then you'll see this compliation error:

Multiple substitutions specified in non-positional format; did you mean to add the formatted="false" attribute?

The workaround for this issue is to adopt AAPT2, which has been the default tool since October 2017. You can do this by removing this line from your file.


NullPointerException after shrinking with proguard

In version 2.0.0, Proguard is removing a required class and causing a NullPointerException when shrinking is enabled

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.view.View.setOnClickListener(android.view.View$OnClickListener)' on a null object reference at

Add this line to your app proguard configuration to keep the missing class and prevent the crash.

-keep class { *; }

Note: this rule was added to the SDK's consumer Proguard file in version 2.1.0, and no longer needs to be added.