java.lang.VerifyError происходит на некоторых устройствах - PullRequest
0 голосов
/ 08 июля 2011

Я написал приложение для Android для своей компании, и, поскольку оно хорошо работает для меня, есть несколько отчетов о сбоях с ошибками, которых у меня никогда не было.Я не знаю, как это исправить, это java.lang.verifyError в Сервисе.

сбойная строка:

String post_request = ConnectionHelper.getTicketRequestJsonString(true, ticketIdsToDownload);

ConnectionHelper - это класс, содержащий только статические функции, возвращающие строки.Что я могу сделать, чтобы решить эту проблему?

Редактировать: если полезно, я опубликую некоторый код, не думая, что столкнулся с «проблемами безопасности»

public static String getTicketRequestJsonString(boolean details, List<String> ticketIds){
    String ticketString = "tickets:[";
    int count = ticketIds.size() - 1;
    for (int i = 0; i <= count; i++){
        String s = ticketIds.get(i);
        ticketString += s
        ticketString += i != count ? "," : "]";
    }
    return ticketString;
}

Ответы [ 2 ]

0 голосов
/ 17 апреля 2013

у меня была такая же проблема здесь; и, наконец, обнаружил, что уязвимый класс использует

try {
localIP = InetAddress.getLocalHost().getHostAddress();
} catch (NetworkOnMainThreadException ex) {         
}

Это не удалось с VerifyError на Android 2.3.

исключение использования NetworkOnMainThreadException, он снова работает на 2.3.

0 голосов
/ 08 июля 2011

A VerifyError возникает, когда Android пытается загрузить класс, который ссылается на вещи, которые недоступны.Примером может быть загрузка класса, который ссылается на классы Android 3.0, при работе на устройстве Android 2.1.

Что я могу сделать, чтобы решить проблему?

Определитьчто конкретно он не может загрузить, то определите, как с этим бороться.Например, существуют приемы, позволяющие избежать загрузки классов Android 3.0 на устройство Android 2.1, при этом используя классы Android 3.0 на устройстве Android 3.x.

...