В базе данных apk хранится база данных объемом 20 МБ, которая при первом запуске извлекается для использования.Для этого я использую
PackageManager pm = context.getPackageManager();
String apkFile = pm.getApplicationInfo(context.getPackageName(), 0).sourceDir;
ZipFile zipFile = new ZipFile(apkFile);
ZipEntry entry = zipFile.getEntry("assets/FILENAME");
myInput = zipFile.getInputStream(entry);
myOutput = new FileOutputStream(file);
byte[] buffer = new byte[1024*4];
int length;
int total = 0;
int counter = 1;
while ((length = myInput.read(buffer)) > 0) {
total += length;
counter++;
if (counter % 32 == 0) {
publishProgress(total);
}
myOutput.write(buffer, 0, length);
}
Все отлично работает, когда я экспортирую из eclipse (цель Android 2.2) без использования Proguard.Когда я экспортирую с помощью proguard, распаковка начинает работать на несколько секунд (и несколько обновлений прогресса, до 8%), но затем падает с java.io.IOException в java.util.zip.InflaterInputStream.read (..)
Работает на эмуляторе, но вылетает на устройствах (многие устройства, но я думаю, что всегда работает в Android 4, вылетает в Android 2.2).Мой proguard.cfg в основном по умолчанию.Ничто из того, что я пробовал изменить, похоже, не поможет, есть идеи?