Если я изменю
ZipEntry entry = new ZipEntry(metaFolder+File.separator+containerFile);
до
final ZipEntry entry = new ZipEntry(metaFolder + "/" + containerFile);
у меня работает (на винде). EpubCheck по-прежнему показывает некоторые (новые) ошибки, вы также должны их проверить.
Убедитесь, что вы поместили записи в zip
/ epub
в следующем порядке:
mimetype
META-INF/*
- все остальное
Я могу найти некоторые различия между вашим оригинальным epub и перепакованной версией:
# unzip -l android.epub
Archive: android.epub
Length Date Time Name
--------- ---------- ----- ----
20 11-17-2011 14:48 mimetype
227 11-17-2011 14:48 META-INF\container.xml
1589 11-17-2011 14:48 android.html
1076 11-17-2011 14:48 content.opf
223 11-17-2011 14:48 toc.ncx
--------- -------
3135 5 files
# unzip -l my.epub
Archive: my.epub
Length Date Time Name
--------- ---------- ----- ----
20 11-17-2011 14:48 mimetype
0 11-17-2011 11:05 META-INF/
227 11-17-2011 14:48 META-INF/container.xml
1076 11-17-2011 14:48 content.opf
223 11-17-2011 14:48 toc.ncx
1589 11-17-2011 14:48 android.html
--------- -------
3135 6 files
Я бы попробовал поместить в папку zip файл META-INF
.
EpubCheck также сообщает об ошибке:
ERROR: android.epub: Required META-INF/container.xml resource is missing
Если запись META-INF
не помогает, проверьте источник EpubCheck, возможно, это может помочь.