Use Case 1:
- Upload the address book via another carddav client (SOGo Connector for example)
- Sync it with DAVdroid
- Switch to “Contacts to display” and select the DAVdroid Account
- Select an existing contact and edit it
–> com.android.contacts app crashs.
03-16 14:37:57.525 6494-6494/com.android.contacts E/AndroidRuntime﹕ FATAL EXCEPTION: main
java.lang.NullPointerException
at com.android.contacts.editor.ContactEditorFragment$EntityDeltaComparator.compare(ContactEditorFragment.java:1319)
at com.android.contacts.editor.ContactEditorFragment$EntityDeltaComparator.compare(ContactEditorFragment.java:1276)
at java.util.TimSort.binarySort(TimSort.java:261)
at java.util.TimSort.sort(TimSort.java:186)
at java.util.TimSort.sort(TimSort.java:169)
at java.util.Arrays.sort(Arrays.java:2038)
at java.util.Collections.sort(Collections.java:1891)
at com.android.contacts.editor.ContactEditorFragment.bindEditors(ContactEditorFragment.java:682)
at com.android.contacts.editor.ContactEditorFragment.bindEditorsForExistingContact(ContactEditorFragment.java:510)
at com.android.contacts.editor.ContactEditorFragment.setData(ContactEditorFragment.java:469)
at com.android.contacts.editor.ContactEditorFragment$4.onLoadFinished(ContactEditorFragment.java:1715)
at com.android.contacts.editor.ContactEditorFragment$4.onLoadFinished(ContactEditorFragment.java:1694)
at android.app.LoaderManagerImpl$LoaderInfo.callOnLoadFinished(LoaderManager.java:482)
at android.app.LoaderManagerImpl$LoaderInfo.onLoadComplete(LoaderManager.java:450)
at android.content.Loader.deliverResult(Loader.java:143)
at com.android.contacts.ContactLoader.deliverResult(ContactLoader.java:1248)
at com.android.contacts.ContactLoader.deliverResult(ContactLoader.java:74)
at android.content.AsyncTaskLoader.dispatchOnLoadComplete(AsyncTaskLoader.java:254)
at android.content.AsyncTaskLoader$LoadTask.onPostExecute(AsyncTaskLoader.java:91)
at android.os.AsyncTask.finish(AsyncTask.java:631)
at android.os.AsyncTask.access$600(AsyncTask.java:177)
at android.os.AsyncTask$InternalHandler.handleMessage(AsyncTask.java:644)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4931)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
at dalvik.system.NativeStart.main(Native Method)
Use Case 2)
- Switch to “Contacts to display” and select DAVdroid Account
- Add a new contact (Android says the contact will be synced)
- Save contact
- Edit the new contact
–> all works as intended
No HTC 
SEMC Xperia Pro Android 4.1.2 (API 16) CyanogenMod 10.1
@Edit
Only contacts that are similar to the local contacts will crash, if i remove these contacts, all works fine.
In my case i remove my complete contacts
- Navigate to Settings—>Apps—>Contacts Storage
- Now Click Clear data
and get all contacts via carddav …