Я использовал декомпилятор приложения для Android для декомпиляции случайного приложения. Кажется, что приложение не запутывается - даже имена переменных сохраняются. Дело в java-коде. Иногда я получаю сообщение об ошибке. Это образец:
private long compressAndFormat(byte[] token data) {
long result = 0;
int i = 0;
while (true) {
try {
if (i >= this.ipb.length) {
return result >> 1;
}
int bit;
while (bit >= 0) {
byte mask = (byte) (1 << bit);
if ((this.ipb[i] & mask) != 0) {
if ((tokenData[i] & mask) != 0) {
result |= 1;
}
result <<= 1;
}
bit--;
}
i++;
} finally {
result = 0;
}
}
}
В этом случае я получаю ошибку Variable 'bit' might not have been initialized. Почему так случилось? Это приложение было написано на более старой версии java, где вы могли использовать переменные без инициализации, или что-то не так с декомпилятором?
@Stultuske Я знаю. Мне интересно, почему это происходит. Почему есть bit, а не bit = 0.




это происходит из-за того, что бит переменной «мог быть не инициализирован». int bit; -> просто инициализируйте его базовым значением