IncompatibleClassChangeError

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?

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.

Hi @developernotes

We released latest version of our Android App by upgrading SQLCipher library to v4.1.3. Same crashes are still getting reported on Playstore.

Please suggest next steps.

Hi @app_jc

Your error message does not reference SQLCipher for Android at all. Are you able to reproduce the issue within the SQLCipher for Android test suite?