IncompatibleClassChangeError

#1

Hi,

We are using SQLCipher v3.5.7 in our Android App. From last few weeks, we are seeing a lot of crashes being reported as follows. We still don’t have any RCA.

Fatal Exception: java.lang.IncompatibleClassChangeError

Class '**.MyProvider' does not implement interface 'android.database.Cursor' in call to 'void android.database.Cursor.close()' (declaration of 'android.content.ContentProviderNative' appears in /system/framework/framework.jar)

android.content.ContentProviderNative.onTransact (ContentProviderNative.java:123)
android.os.Binder.execTransact (Binder.java:731)

Has this issue been reported earlier? We suspect that the problem might be due to Java8 whereas the SQLCipher lib is compiled with Java7. Crashes are reported on Android 8 (Oreo) & Android 9 (Pie).

Any recommendation on next steps from your end please?

#2

Hi @app_jc

You might try a newer version of SQLCipher for Android. The latest release of 4.1.3 and is compiled against Java 8. You can find more information about upgrading your Android library here and the major upgrade to SQLCipher 4 here.