Android 我的应用程序在使用sql密码时崩溃

Android 我的应用程序在使用sql密码时崩溃,android,sqlcipher,Android,Sqlcipher,我在我的应用程序中使用了sql cipher(),它与android平板电脑以及android 2.3以上版本都能很好地配合使用。但它在android 2.2版本中崩溃。有人知道这个问题吗?如果有,请给我一个解决方案。我已经包括了崩溃日志 03-24 05:04:26.440:E/AndroidRuntime(15069):致命异常:主 03-24 05:04:26.440:E/AndroidRuntime(15069):info.guardianproject.database.sqlciph

我在我的应用程序中使用了sql cipher(),它与android平板电脑以及android 2.3以上版本都能很好地配合使用。但它在android 2.2版本中崩溃。有人知道这个问题吗?如果有,请给我一个解决方案。我已经包括了崩溃日志

03-24 05:04:26.440:E/AndroidRuntime(15069):致命异常:主 03-24 05:04:26.440:E/AndroidRuntime(15069):info.guardianproject.database.sqlcipher.SQLiteException:不是错误 03-24 05:04:26.440:E/AndroidRuntime(15069):位于info.guardianproject.database.sqlcipher.SQLiteDatabase.dbopen(本机方法) 03-24 05:04:26.440:E/AndroidRuntime(15069):位于info.guardianproject.database.sqlcipher.SQLiteDatabase.(SQLiteDatabase.java:1870) 03-24 05:04:26.440:E/AndroidRuntime(15069):位于info.guardianproject.database.sqlcipher.SQLiteDatabase.openDatabase(SQLiteDatabase.java:863) 03-24 05:04:26.440:E/AndroidRuntime(15069):位于info.guardianproject.database.sqlcipher.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:183) 03-24 05:04:26.440:E/AndroidRuntime(15069):在android.view.view.performClick(view.java:2408) 03-24 05:04:26.440:E/AndroidRuntime(15069):在android.view.view$PerformClick.run(view.java:8818) 03-24 05:04:26.440:E/AndroidRuntime(15069):在android.os.Handler.handleCallback(Handler.java:587)上 03-24 05:04:26.440:E/AndroidRuntime(15069):在android.os.Handler.dispatchMessage(Handler.java:92)上 03-24 05:04:26.440:E/AndroidRuntime(15069):在android.os.Looper.loop(Looper.java:123)上 03-24 05:04:26.440:E/AndroidRuntime(15069):位于android.app.ActivityThread.main(ActivityThread.java:4627) 03-24 05:04:26.440:E/AndroidRuntime(15069):位于java.lang.reflect.Method.Invokenactive(本机方法) 03-24 05:04:26.440:E/AndroidRuntime(15069):位于java.lang.reflect.Method.invoke(Method.java:521) 03-24 05:04:26.440:E/AndroidRuntime(15069):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:871) 03-24 05:04:26.440:E/AndroidRuntime(15069):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:629) 03-24 05:04:26.440:E/AndroidRuntime(15069):在dalvik.system.NativeStart.main(本机方法)

SQLCipher for Android依赖于ICU项目的本地化数据。在Android平台2.3及以上版本上,SQLCipher for Android将尝试使用系统提供的ICU本地化数据。如果您试图在2.3以下的受支持平台上使用SQLCipher for Android,则需要将assets/icudt44l.zip作为依赖项包含在应用程序中

如果您的SQLCipher安装中没有该zip文件,则可以直接在获取该zip文件

SQLCipher for Android依赖于ICU项目的本地化数据。在Android平台2.3及以上版本上,SQLCipher for Android将尝试使用系统提供的ICU本地化数据。如果您试图在2.3以下的受支持平台上使用SQLCipher for Android,则需要将assets/icudt44l.zip作为依赖项包含在应用程序中


如果您的SQLCipher安装中没有zip文件,您可以直接从中获取该zip文件

这是我在这件事上发现的一件奇怪的事情。如本文所述:Android 2.3以下版本无法读取icudt46l.zip文件,因为它大于1mb。解决方法是告诉aapt(或者proguard,如果您正在使用它的话)不要压缩任何.zip文件。

我在这件事上发现了一件奇怪的事情。如本文所述:Android 2.3以下版本无法读取icudt46l.zip文件,因为它大于1mb。解决方案是告诉aapt(或者proguard,如果您正在使用它的话)不要压缩任何.zip文件。

我已经将icudt44l.zip包含在assets文件夹中。但是崩溃仍然存在。在将icudt44l.zip包含在assets文件夹中之后,我是否需要做任何额外的代码?您是指icudt46l.zip吗?您是否也遵循了自述文件?1.1.0版本中的自述文件看起来不错。@louielouie我只是将icudt44l.zip复制并粘贴到资产文件夹中就足够了吗?或者在那之后我需要额外的工作吗?@Sujiz你需要包括icudt46l.zip,你在使用它吗?@Stephen Lombardo是的,我也在使用它。首先我使用icudt44l,现在我使用以下链接中的icudt46l.zip。我已经将icudt44l.zip包含在资产文件夹中。但是崩溃仍然存在。在将icudt44l.zip包含在资产文件夹中之后,我是否需要做任何额外的代码?你是指icudt46l.zip吗?您是否也遵循了自述文件?1.1.0版本中的自述文件看起来不错。@louielouie我只是将icudt44l.zip复制并粘贴到资产文件夹中就足够了吗?或者在那之后我需要额外的工作吗?@Sujiz你需要包括icudt46l.zip,你在使用它吗?@Stephen Lombardo是的,我也在使用它。首先我使用icudt44l,现在我从下面的链接使用icudt46l.zip