Android的SQLCipher:icudt46l.zip真的需要吗?
我原以为不需要本地化数据文件icudt46l.zip,但如果我没有将其包含在Nexus 5中,就会出现运行时错误:Android的SQLCipher:icudt46l.zip真的需要吗?,android,android-sqlite,sqlcipher,Android,Android Sqlite,Sqlcipher,我原以为不需要本地化数据文件icudt46l.zip,但如果我没有将其包含在Nexus 5中,就会出现运行时错误: E/AndroidRuntime(4341):由以下原因引起:net.sqlcipher.database.SQLiteException:非错误 这意味着总体而言,SQLCipher for Android需要7MB的额外文件 -270万资产/icudt46l.zip -0.2MB lib/armeabi/libdatabase_sqlcipher.so -2.3MB lib/a
E/AndroidRuntime(4341):由以下原因引起:net.sqlcipher.database.SQLiteException:非错误
这意味着总体而言,SQLCipher for Android需要7MB的额外文件
-270万资产/icudt46l.zip-0.2MB lib/armeabi/libdatabase_sqlcipher.so
-2.3MB lib/armeabi/libsqlcipher_android.so
-0.4MB lib/armeabi/libstlport_共享。因此
-0.1MB lib/commons codec.jar
-1.1MB lib/guava-r09.jar
-0.1MB lib/sqlcipher.jar
其他人是否都需要包含icudt46l.zip文件?引用: SQLCipher for Android取决于来自的本地化数据。SQLCipher for Android将尝试使用系统提供的ICU本地化数据文件icudt46l.dat,该文件位于/system/usr/ICU目录(如果可用)中。如果没有找到,SQLCipher for Android将尝试解压缩位于应用程序资产目录中的icudt46l.zip文件。建议将icudt46.zip文件包含在应用程序中,以实现最佳的平台兼容性。如果需要调整应用程序本地化数据的大小,可以使用ICU数据库定制程序
我不知道有哪个版本的Android系统提供的ICU数据满足SQLCipher的需要。如果您使用gradle从maven central获取数据,您不需要担心它的依赖性。它实际上已经去掉了一些库,比如guava和ApacheCommons,所以在大小和方法数量上都要小得多
编译'net.zettetic:android数据库sqlcipher:3.4.0'
这里有进一步的讨论: