mangstadt / ez-vcard

A vCard parser library for Java
Other
398 stars 92 forks source link

No Class found in DavX5 #145

Open ibahnasy opened 8 months ago

ibahnasy commented 8 months ago

I got the below exception in DavX5 and seems it's from ez-vcard library.

EXCEPTION
java.lang.NoClassDefFoundError: ezvcard.io.scribe.ScribeIndex
    at ezvcard.io.StreamWriter.<init>(StreamWriter.java:4)
    at ezvcard.io.text.VCardWriter.<init>(VCardWriter.java:1)
    at at.bitfire.vcard4android.ContactWriter.writeCard(ContactWriter.kt:59)
    at at.bitfire.vcard4android.Contact.writeVCard(Contact.kt:19)
    at at.bitfire.davdroid.syncadapter.ContactsSyncManager$generateUpload$1.invoke(ContactsSyncManager.kt:11)
    at at.bitfire.davdroid.syncadapter.ContactsSyncManager$generateUpload$1.invoke(ContactsSyncManager.kt:1)
    at at.bitfire.davdroid.syncadapter.SyncManager.localExceptionContext(SyncManager.kt:8)
    at at.bitfire.davdroid.syncadapter.ContactsSyncManager.generateUpload(ContactsSyncManager.kt:2)
    at at.bitfire.davdroid.syncadapter.ContactsSyncManager.generateUpload(ContactsSyncManager.kt:1)
    at at.bitfire.davdroid.syncadapter.SyncManager$uploadDirty$2.invoke(SyncManager.kt:3)
    at at.bitfire.davdroid.syncadapter.SyncManager$uploadDirty$2.invoke(SyncManager.kt:1)
    at at.bitfire.davdroid.syncadapter.SyncManager.remoteExceptionContext(SyncManager.kt:1)
    at at.bitfire.davdroid.syncadapter.SyncManager.uploadDirty(SyncManager.kt:12)
    at at.bitfire.davdroid.syncadapter.SyncManager$uploadDirty$1$1$1.invoke(SyncManager.kt:2)
    at at.bitfire.davdroid.syncadapter.SyncManager$uploadDirty$1$1$1.invoke(SyncManager.kt:1)
    at at.bitfire.davdroid.syncadapter.SyncManager.localExceptionContext(SyncManager.kt:8)
    at at.bitfire.davdroid.syncadapter.SyncManager$uploadDirty$1$1.invokeSuspend(SyncManager.kt:21)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:9)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:111)
    at kotlinx.coroutines.EventLoopImplBase.processNextEvent(EventLoop.common.kt:143)
    at kotlinx.coroutines.BuildersKt.runBlocking(Unknown Source:105)
    at kotlinx.coroutines.BuildersKt.runBlocking$default(Unknown Source:3)
    at at.bitfire.davdroid.syncadapter.SyncManager.uploadDirty(SyncManager.kt:2)
    at at.bitfire.davdroid.syncadapter.ContactsSyncManager.uploadDirty(ContactsSyncManager.kt:113)
    at at.bitfire.davdroid.syncadapter.SyncManager$performSync$1.invoke(SyncManager.kt:10)
    at at.bitfire.davdroid.syncadapter.SyncManager$performSync$1.invoke(SyncManager.kt:1)
    at at.bitfire.davdroid.syncadapter.SyncManager.unwrapExceptions(SyncManager.kt:2)
    at at.bitfire.davdroid.syncadapter.SyncManager.performSync(SyncManager.kt:20)
    at at.bitfire.davdroid.syncadapter.ContactSyncer.sync(ContactSyncer.kt:221)
    at at.bitfire.davdroid.syncadapter.Syncer.onPerformSync(Syncer.kt:122)
    at at.bitfire.davdroid.syncadapter.SyncWorker$doWork$2$1$1.invoke(SyncWorker.kt:3)
    at at.bitfire.davdroid.syncadapter.SyncWorker$doWork$2$1$1.invoke(SyncWorker.kt:1)
    at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invokeSuspend(Interruptible.kt:59)
    at kotlinx.coroutines.InterruptibleKt$runInterruptible$2.invoke(Interruptible.kt:13)
    at kotlinx.coroutines.intrinsics.UndispatchedKt.startUndispatchedOrReturn(Undispatched.kt:5)
    at kotlinx.coroutines.BuildersKt.withContext(Unknown Source:41)
    at kotlinx.coroutines.InterruptibleKt.runInterruptible$default(Interruptible.kt:9)
    at at.bitfire.davdroid.syncadapter.SyncWorker$doWork$2.invokeSuspend(SyncWorker.kt:502)
    at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:9)
    at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:111)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:644)
    at java.lang.Thread.run(Thread.java:1012)
Caused by: java.lang.NoSuchFieldError: No field emptyString of type Ljava/lang/String; in class Ljavax/xml/namespace/QName; or its superclasses (declaration of 'javax.xml.namespace.QName' appears in /apex/com.android.art/javalib/core-libart.jar)
    at ezvcard.io.scribe.VCardPropertyScribe.<init>(VCardPropertyScribe.java:3)
    at ezvcard.io.scribe.AddressScribe.<init>(AddressScribe.java:5)
    at ezvcard.io.scribe.ScribeIndex.<clinit>(ScribeIndex.java:24)
    at ezvcard.io.StreamWriter.<init>(StreamWriter.java:4)
    at ezvcard.io.text.VCardWriter.<init>(VCardWriter.java:1)
    at at.bitfire.vcard4android.ContactWriter.writeCard(ContactWriter.kt:59)
    at at.bitfire.vcard4android.Contact.writeVCard(Contact.kt:19)
    at at.bitfire.davdroid.syncadapter.ContactsSyncManager$generateUpload$1.invoke(ContactsSyncManager.kt:11)
    at at.bitfire.davdroid.syncadapter.ContactsSyncManager$generateUpload$1.invoke(ContactsSyncManager.kt:1)
    at at.bitfire.davdroid.syncadapter.SyncManager.localExceptionContext(SyncManager.kt:8)
    at at.bitfire.davdroid.syncadapter.ContactsSyncManager.generateUpload(ContactsSyncManager.kt:2)
    at at.bitfire.davdroid.syncadapter.ContactsSyncManager.generateUpload(ContactsSyncManager.kt:1)
    at at.bitfire.davdroid.syncadapter.SyncManager$uploadDirty$3.invoke(SyncManager.kt:5)
    at at.bitfire.davdroid.syncadapter.SyncManager$uploadDirty$3.invoke(SyncManager.kt:1)
    at at.bitfire.davdroid.syncadapter.SyncManager.remoteExceptionContext(SyncManager.kt:1)
    at at.bitfire.davdroid.syncadapter.SyncManager.uploadDirty(SyncManager.kt:15)
    ... 30 more
mangstadt commented 7 months ago

ez-vcard now requires Java 8. This might have something to do with your problem. This has been known to cause issues with some Android projects.

There is a parallel branch which supports Java 6:

https://github.com/mangstadt/ez-vcard/tree/j6