Переменная и оператор, кажется, игнорируются в присваивании. Что может сделать это? - PullRequest
1 голос
/ 05 декабря 2011

Я отлаживаю приложение для Android и вижу, что переход в режим отладки затмения:

    int bottom, right;
    bottom = 800;
    right = 480;
    float h ,v;
    h = right/86.0f;
    v = bottom/116.0f;

Значения в представлении отладки говорят, что h = 86.0 и v = 116.0

Значит, отладчик показывает правильные значения? Что может сделать это?

подсказка 1: если я изменю литерал 86.0f для, скажем, 54.0f, то h = 54.0 и то же самое для v
подсказка 2: эти значения являются правильными в режиме отладки, когда приложение работает нормально, но нет, когда оно не работает (исключение обнаружено, приложение завершается и SEGV_MAPERR), что, по-видимому, происходит спустя много времени после этого кода и зависит от использования этих неправильных значений ч и v.

1 Ответ

0 голосов
/ 08 декабря 2011

Я не совсем уверен, но кажется, что я столкнулся с ограничением Dalvik. Немного поиграв с кодом, появилась ошибка VerifyError, которая привела меня к этой ссылке . После уменьшения количества переменных в моих более крупных методах и разделения их проблема, похоже, исчезла.

...