Recent searches
No recent searches

Sebastian Schneider
Joined Mar 22, 2022
·
Last activity Dec 28, 2023
Following
0
Followers
0
Total activity
4
Vote
1
Subscription
1
ACTIVITY OVERVIEW
BADGES
ARTICLES
POSTS
COMMUNITY COMMENTS
ARTICLE COMMENTS
ACTIVITY OVERVIEW
Latest activity by Sebastian Schneider
Sebastian Schneider commented,
Hi Zendesk-Team
We've run our own internal investigation of the SDK issue, and have found the root cause.
s.b.a.a: caused by: s.b.a.a: resource not found: /META-INF/services/org.xmlpull.v1.XmlPullParserFactory make sure that parser implementing XmlPull API is available
It looks like for some reason the class is removed during proguard / R8 processing.
However, this should be caught by your error handling, which itself is faulty:
The cause of the crash is due to invalid logging on the error handling side.
zendesk.support.request.DocumentRenderer.HtmlParser
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
factory.setValidating(false);
factory.setFeature(Xml.FEATURE_RELAXED, true);
xmlPullParser = factory.newPullParser();
} catch (XmlPullParserException var6) {
Logger.w("RequestActivity", "Unable to parse rich text. Error: '%s' | '%s'", new Object[]{var6.getLocalizedMessage()});
} finally {
this.xpp = xmlPullParser;
}
Where `Logger.w`s string format expects two arguments, but only is given one.
Could this be fixed in a bugfix of your SDK?
View comment · Posted Mar 29, 2022 · Sebastian Schneider
0
Followers
0
Votes
0
Comments
Sebastian Schneider created a post,
Hi!
Implementing the latest SDKs, running the app in Proguard mode causes a crash that can't be traced back due to obfuscation.
Executing the code without Proguard works just fine.
The error occurs, when I'm clicking the "start a conversation" button.
I have followed the recommended settings for Proguard and R8
Even with over-configuration, definitely covering all cases, the error still occurs.
Proguard Config:
-keep class zendesk.** { *; }
-keepnames class zendesk.** { *; }
-keep class sun.misc.Unsafe { *; }
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
Crash Log:
E/AndroidRuntime(17612): FATAL EXCEPTION: main
E/AndroidRuntime(17612): Process: com.[REDACTED].android, PID: 17612
E/AndroidRuntime(17612): java.util.MissingFormatArgumentException: Format specifier '%s'
E/AndroidRuntime(17612): at java.util.Formatter.format(Formatter.java:2523)
E/AndroidRuntime(17612): at java.util.Formatter.format(Formatter.java:2459)
E/AndroidRuntime(17612): at java.lang.String.format(String.java:2911)
E/AndroidRuntime(17612): at i.z.c.a.i(Unknown Source:7)
E/AndroidRuntime(17612): at i.z.c.a.l(Unknown Source:3)
E/AndroidRuntime(17612): at zendesk.support.request.DocumentRenderer$HtmlParser.(Unknown Source:40)
E/AndroidRuntime(17612): at zendesk.support.request.CellFactory.(Unknown Source:12)
E/AndroidRuntime(17612): at zendesk.support.request.RequestModule.providesMessageFactory(Unknown Source:14)
E/AndroidRuntime(17612): at zendesk.support.request.RequestModule_ProvidesMessageFactoryFactory.providesMessageFactory(Unknown Source:9)
E/AndroidRuntime(17612): at zendesk.support.request.RequestModule_ProvidesMessageFactoryFactory.get(Unknown Source:48)
E/AndroidRuntime(17612): at zendesk.support.request.RequestModule_ProvidesMessageFactoryFactory.get(Unknown Source:0)
E/AndroidRuntime(17612): at k.c.a.get(Unknown Source:13)
E/AndroidRuntime(17612): at zendesk.support.DaggerSupportSdkComponent$RequestComponentImpl.injectRequestViewConversationsEnabled(Unknown Source:22)
E/AndroidRuntime(17612): at zendesk.support.DaggerSupportSdkComponent$RequestComponentImpl.inject(Unknown Source:0)
E/AndroidRuntime(17612): at zendesk.support.request.RequestViewConversationsEnabled.init(Unknown Source:0)
E/AndroidRuntime(17612): at zendesk.support.request.ComponentRequestRouter.update(Unknown Source:76)
E/AndroidRuntime(17612): at zendesk.support.request.ComponentRequestRouter.update(Unknown Source:2)
E/AndroidRuntime(17612): at x.d.l$d.b(Unknown Source:26)
E/AndroidRuntime(17612): at x.d.s.o(Unknown Source:39)
E/AndroidRuntime(17612): at x.d.s.j(Unknown Source:0)
E/AndroidRuntime(17612): at x.d.s$a$a.a(Unknown Source:78)
E/AndroidRuntime(17612): at x.d.b.b(Unknown Source:27)
E/AndroidRuntime(17612): at x.d.b.a(Unknown Source:0)
E/AndroidRuntime(17612): at x.d.b$a.a(Unknown Source:11)
E/AndroidRuntime(17612): at zendesk.support.request.AsyncMiddleware.onAction(Unknown Source:25)
E/AndroidRuntime(17612): at x.d.b.b(Unknown Source:23)
E/AndroidRuntime(17612): at x.d.b.onAction(Unknown Source:13)
E/AndroidRuntime(17612): at x.d.s$a.run(Unknown Source:22)
E/AndroidRuntime(17612): at x.d.g$a.execute(Unknown Source:10)
E/AndroidRuntime(17612): at x.d.s.c(Unknown Source:8)
E/AndroidRuntime(17612): at zendesk.support.request.ActionLoadSettings$1.onSuccess(Unknown Source:18)
E/AndroidRuntime(17612): at zendesk.support.request.ActionLoadSettings$1.onSuccess(Unknown Source:2)
E/AndroidRuntime(17612): at zendesk.support.ZendeskSupportSettingsProvider$LoadSupportSettings$LoadHelpCenterSettings.onSuccess(Unknown Source:46)
E/AndroidRuntime(17612): at zendesk.support.ZendeskSupportSettingsProvider$LoadSupportSettings$LoadHelpCenterSettings.onSuccess(Unknown Source:2)
E/AndroidRuntime(17612): at zendesk.core.ZendeskSettingsProvider.getSettingsForSdk(Unknown Source:33)
E/AndroidRuntime(17612): at zendesk.support.ZendeskSupportSettingsProvider$LoadSupportSettings.onSuccess(Unknown Source:17)
E/AndroidRuntime(17612): at zendesk.support.ZendeskSupportSettingsProvider$LoadSupportSettings.onSuccess(Unknown Source:2)
E/AndroidRuntime(17612): at zendesk.core.ZendeskSettingsProvider.getSettingsForSdk(Unknown Source:33)
E/AndroidRuntime(17612): at zendesk.support.ZendeskSupportSettingsProvider.getSettings(Unknown Source:11)
E/AndroidRuntime(17612): at zendesk.support.request.ActionLoadSettings.execute(Unknown Source:7)
E/AndroidRuntime(17612): at zendesk.support.request.AsyncMiddleware$QueueItem.execute(Unknown Source:6)
E/AndroidRuntime(17612): at zendesk.support.request.AsyncMiddleware$Queue.dispatchInternal(Unknown Source:32)
E/AndroidRuntime(17612): at zendesk.support.request.AsyncMiddleware$Queue.access$300(Unknown Source:0)
E/AndroidRuntime(17612): at zendesk.support.request.AsyncMiddleware$Queue$QueueCallback.done(Unknown Source:22)
E/AndroidRuntime(17612): at zendesk.support.request.ActionInstallConfiguration$1$1.run(Unknown Source:23)
E/AndroidRuntime(17612): at android.os.Handler.handleCallback(Handler.java:938)
E/AndroidRuntime(17612): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime(17612): at android.os.Looper.loop(Looper.java:223)
E/AndroidRuntime(17612): at android.app.ActivityThread.main(ActivityThread.java:7656)
E/AndroidRuntime(17612): at java.lang.reflect.Method.invoke(Native Method)
E/AndroidRuntime(17612): at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
E/AndroidRuntime(17612): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
SDK versions:
api group: 'com.zendesk', name: 'messaging', version: '5.2.3'
api group: 'com.zendesk', name: 'support', version: '5.0.8'
api group: 'com.zendesk', name: 'answerbot', version: '3.0.7'
api group: 'com.zendesk', name: 'chat', version: '3.3.3'
Posted Mar 22, 2022 · Sebastian Schneider
4
Followers
5
Votes
7
Comments