适用于Android的SQLCipher:icudt46l.zip真的需要吗?

Dan*_*e B 6 android sqlcipher android-sqlite

我当时并不需要本地化数据文件icudt46l.zip,但如果我不在Nexus 5中包含它,我会收到运行时错误:

E/AndroidRuntime(4341): Caused by: net.sqlcipher.database.SQLiteException: not an error

这意味着,总体而言,几乎额外的文件7MB都需要SQLCipher的Android:
- 2.7MB资产/ icudt46l.zip
- 0.2MB的lib/armeabi/libdatabase_sqlcipher.so
- 2.3MB的lib/armeabi/libsqlcipher_android.so
- 0.4MB的lib/armeabi/libstlport_shared.so
- 0.1MB lib/commons-codec.jar
- 1.1MB lib/guava-r09.jar
- 0.1MB lib/sqlcipher.jar

是否其他人都需要包含文件icudt46l.zip?

Com*_*are 7

引用SQLCipher for Android的文档:

适用于Android的SQLCipher依赖于ICU项目的本地化数据.SQLCipher for Android将尝试使用位于/ system/usr/icu目录中的系统提供的ICU本地化数据文件icudt46l.dat(如果可用).如果找不到,SQLCipher for Android将尝试解压缩位于应用程序资产目录中的icudt46l.zip文件.建议将icudt46.zip文件包含在您的应用程序中,以获得最佳平台兼容性.如果您需要调整应用程序的本地化数据大小,可以在此处获得ICU数据库自定义程序.

我不知道任何版本的Android系统提供的ICU数据满足SQLCipher的需求.