Jeśli otworzę duży plik zip (250 MB) za pośrednictwem klasy ZipFile i spróbuję odczytać wpisy. Działa to dobrze na 2.x w emulatorze i na prawdziwym sprzęcie. Jeśli użyję dokładnego kodu na moim tablecie (Asus Transformer z 4.0.3) lub emulatorze (3.2), nie mogę odczytać żadnych wpisów. Funkcja size() klasy ZipFile zawsze zwraca zero, a ZipFile nie zwraca żadnych pozycji zip. Nawet aplikacja zip, która jest dostarczana z ROMem na moim tablecie, nie może odczytać żadnych wpisów. Plik zip nie jest uszkodzony. Sprawdziłem to.Android 3.x + Java ZipFile Class - Nie można odczytać ZipEntries z dużych plików
Kod do odczytu z ZipFile działa dobrze we wszystkich wersjach z mniejszymi plikami zip. Co zmieniło się pomiędzy 2.x a 3.x/4.x?
Mój plik testowy to plik C64Music.zip z kolekcji HighVoltage Sid. Zawiera ponad 40 000 plików i wynosi około 250 MB.
Nie mam pojęcia, gdzie patrzeć.
Czy próbowałeś czytać inne pliki zip na swoim Asusie lub emulatorze z 3.x/4.x? Czy problem dotyczy tylko tego pliku zip? –
Połkniesz jakieś wyjątki? Jeśli nie, to czy funkcja getName() zwraca nazwę pliku zip? (Prosty test, ale może pojawić się coś zaskakującego). Czy otrzymasz inne wyniki, jeśli otworzysz zip z flagą OPEN_READ lub bez niej? –
Nie jestem pewien, czy mógłbyś spróbować z 'JarFile'? ... –