java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/xml/bind/DatatypeConverter

821 Views Asked by At

This is only happening with Android 9 devices. Using the evernote android sdk.

I've upgraded my targetSdkVersion to 28 and migrated to androidX and now I'm catching this issue in crashlytics with this stacktrace:

Fatal Exception: java.lang.NoClassDefFoundError: Failed resolution of: Ljavax/xml/bind/DatatypeConverter;
   at org.scribe.services.DatatypeConverterEncoder.encode(DatatypeConverterEncoder.java:10)
   at org.scribe.services.HMACSha1SignatureService.bytesToBase64String(HMACSha1SignatureService.java:51)
   at org.scribe.services.HMACSha1SignatureService.doSign(HMACSha1SignatureService.java:46)
   at org.scribe.services.HMACSha1SignatureService.getSignature(HMACSha1SignatureService.java:32)
   at org.scribe.oauth.OAuth10aServiceImpl.getSignature(OAuth10aServiceImpl.java:151)
   at org.scribe.oauth.OAuth10aServiceImpl.addOAuthParams(OAuth10aServiceImpl.java:75)
   at org.scribe.oauth.OAuth10aServiceImpl.getRequestToken(OAuth10aServiceImpl.java:55)
   at org.scribe.oauth.OAuth10aServiceImpl.getRequestToken(OAuth10aServiceImpl.java:40)
   at org.scribe.oauth.OAuth10aServiceImpl.getRequestToken(OAuth10aServiceImpl.java:45)
   at com.evernote.client.android.EvernoteOAuthHelper.createRequestToken(EvernoteOAuthHelper.java:106)
   at com.evernote.client.android.EvernoteOAuthHelper.startAuthorization(EvernoteOAuthHelper.java:127)
   at com.evernote.client.android.login.EvernoteLoginTask.startAuthorization(EvernoteLoginTask.java:144)
   at com.evernote.client.android.login.EvernoteLoginTask.execute(EvernoteLoginTask.java:51)
   at com.evernote.client.android.login.EvernoteLoginTask.execute(EvernoteLoginTask.java:23)
   at net.vrallev.android.task.Task.executeInner(Task.java:67)
   at net.vrallev.android.task.TaskExecutor$TaskRunnable.run(TaskExecutor.java:191)
   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:764)

And

Caused by java.lang.ClassNotFoundException: Didnt find class "javax.xml.bind.DatatypeConverter" on path: DexPathList[[zip file "/data/app/com.appName-wW-VAgs8nrHvdZ5Jsbu0Ag==/base.apk"],nativeLibraryDirectories=[/data/app/com.appName-wW-VAgs8nrHvdZ5Jsbu0Ag==/lib/arm64, /data/app/com.appName-wW-VAgs8nrHvdZ5Jsbu0Ag==/base.apk!/lib/arm64-v8a, /system/lib64]]
   at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:134)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:379)
   at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
   at org.scribe.services.DatatypeConverterEncoder.encode(DatatypeConverterEncoder.java:10)
   at org.scribe.services.HMACSha1SignatureService.bytesToBase64String(HMACSha1SignatureService.java:51)
   at org.scribe.services.HMACSha1SignatureService.doSign(HMACSha1SignatureService.java:46)
   at org.scribe.services.HMACSha1SignatureService.getSignature(HMACSha1SignatureService.java:32)
   at org.scribe.oauth.OAuth10aServiceImpl.getSignature(OAuth10aServiceImpl.java:151)
   at org.scribe.oauth.OAuth10aServiceImpl.addOAuthParams(OAuth10aServiceImpl.java:75)
   at org.scribe.oauth.OAuth10aServiceImpl.getRequestToken(OAuth10aServiceImpl.java:55)
   at org.scribe.oauth.OAuth10aServiceImpl.getRequestToken(OAuth10aServiceImpl.java:40)
   at org.scribe.oauth.OAuth10aServiceImpl.getRequestToken(OAuth10aServiceImpl.java:45)
   at com.evernote.client.android.EvernoteOAuthHelper.createRequestToken(EvernoteOAuthHelper.java:106)
   at com.evernote.client.android.EvernoteOAuthHelper.startAuthorization(EvernoteOAuthHelper.java:127)
   at com.evernote.client.android.login.EvernoteLoginTask.startAuthorization(EvernoteLoginTask.java:144)
   at com.evernote.client.android.login.EvernoteLoginTask.execute(EvernoteLoginTask.java:51)
   at com.evernote.client.android.login.EvernoteLoginTask.execute(EvernoteLoginTask.java:23)
   at net.vrallev.android.task.Task.executeInner(Task.java:67)
   at net.vrallev.android.task.TaskExecutor$TaskRunnable.run(TaskExecutor.java:191)
   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:764)

Is there anyone who could help me ti fix this issue? From what I've discovered, the evernote sdk is using this library "org.scribe:scribe:1.3.7", that is quite outdated, maybe this is the issue.

Scribe Github Releases

Evernote Github Gradle

Many thanks!

0

There are 0 best solutions below