К счастью, этот код с открытым исходным кодом, так что вы можете отладить его самостоятельно. исходный код находится здесь.
Соответствующий раздел:
int len = projection.length;
intProjection = new int[len];
for (int i = 0; i < len; i++) {
if (projection[i].equals(FILEID)) {
intProjection[i] = FILEID_IDX;
} else if (projection[i].equals(FILENAME)) {
intProjection[i] = FILENAME_IDX;
} else if (projection[i].equals(ZIPFILE)) {
intProjection[i] = ZIPFILE_IDX;
} else if (projection[i].equals(MODIFICATION)) {
intProjection[i] = MOD_IDX;
} else if (projection[i].equals(CRC32)) {
intProjection[i] = CRC_IDX;
} else if (projection[i].equals(COMPRESSEDLEN)) {
intProjection[i] = COMPLEN_IDX;
} else if (projection[i].equals(UNCOMPRESSEDLEN)) {
intProjection[i] = UNCOMPLEN_IDX;
} else if (projection[i].equals(COMPRESSIONTYPE)) {
intProjection[i] = COMPTYPE_IDX;
} else {
throw new RuntimeException();
}
Интересные вещи по этому поводу.Во-первых, номера строк не соответствуют номерам строк.Во-вторых, имя пакета не совпадает с именем пакета.Вы используете последнюю версию?Возможно, ошибка уже исправлена.В обновлении , которое изменило имя пакета , также написано «Обновлено для Marshmallow», которое, если вы получаете перерывы, может объяснить, почему вы получаете их на последних телефонах.