2014-02-25 11 views
6

Ich habe erwartet, dass die Lokalisierungsdaten-Datei icudt46l.zip nicht wirklich nötig war, aber wenn ich es 5 auf dem Nexus nicht enthalten erhalte ich einen Laufzeitfehler:SQLCipher für Android: icudt46l.zip wirklich benötigt?

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

Dieses Mittel dass insgesamt fast 7 MB zusätzlichen Dateien für SQLCipher für Android benötigt:
- 2,7MB Vermögenswerte/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/Guave-r09.jar
- 0,1MB lib/sqlcipher.jar

Haben alle anderen die Notwendigkeit, die Datei icudt46l.zip einzuschließen?

+0

Es ist eine weitere Diskussion hier: https://groups.google.com/forum/#!topic/sqlcipher/TOYpkC0yWxI –

Antwort

7

Zitiert the documentation for SQLCipher for Android:

SQLCipher for Android depends on localization data from the ICU project . SQLCipher for Android will attempt to use a system provided ICU localization data file called icudt46l.dat located in the /system/usr/icu directory if available. If that is not found, SQLCipher for Android will attempt to unzip the icudt46l.zip file located within the applications asset directory. It is recommended that the icudt46.zip file be included with your application for best platform compatibility. If you need to adjust the size of the localization data for your application, a ICU data library customizer is available here .

Ich bin nicht bekannt, dass Android-Version, in der das System bereitgestellte ICU Daten SQLCipher Bedürfnisse erfüllt.

1

Wenn Sie Gradle verwenden, um es von maven central zu erhalten, müssen Sie sich keine Sorgen über seine Abhängigkeiten machen. Es hat tatsächlich ein paar dieser Bibliotheken, wie Guave und Apache Commons, verloren, so ist sowohl in der Größe als auch in der Anzahl der Methoden viel kleiner.

compile 'net.zetetic:android-database-sqlcipher:3.4.0'