java.lang.VerifyError происходит на некоторых устройствах
Я написал приложение для 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 ответа
У меня была такая же проблема здесь; и, наконец, обнаружил, что используемый класс использует
try {
localIP = InetAddress.getLocalHost().getHostAddress();
} catch (NetworkOnMainThreadException ex) {
}
Это не удалось с VerifyError на Android 2.3.
исключив использование NetworkOnMainThreadException, он снова работает на 2.3.
VerifyError
происходит, когда Android пытается загрузить класс, который ссылается на вещи, которые недоступны. Примером может быть загрузка класса, который ссылается на классы Android 3.0, при работе на устройстве Android 2.1.
Что я могу сделать, чтобы решить проблему?
Определите, что конкретно он не может загрузить, а затем определите, как с этим бороться. Например, существуют приемы, позволяющие избежать загрузки классов Android 3.0 на устройство Android 2.1, в то же время используя классы Android 3.0 на устройстве Android 3.x.