#android #dead-code
#Android #мертвый код
Вопрос:
В моем приложении все работало нормально. Затем я провел небольшой рефакторинг, и ключевой компонент перестал работать. Когда я просмотрел вывод LogCat, вот что я обнаружил:
WARN/dalvikvm(488): VFY: unable to resolve virtual method 10830: Ljava/lang/String;.getBytes (Ljava/nio/charset/Charset;)[B
DEBUG/dalvikvm(488): VFY: replacing opcode 0x6e at 0x000e
DEBUG/dalvikvm(488): VFY: dead code 0x0011-0015 in Lcom/appiancorp/tempo/android/service/CommentXmlHttpMessageConverter;.writeInternal (Lcom/appiancorp/tempo/android/model/EntryComment;Lorg/springframework/http/HttpOutputMessage;)V
Это было… мягко говоря, удивительно. Я просмотрел документацию, и метод там есть, что дает?
Ответ №1:
getBytes(Charset)
Существует в API9 и более поздних версиях. Убедитесь, что вы работаете с этой версией SDK или используете getBytes(String charsetName)
существующую в API1.
Вы также можете установить флажок «фильтровать по уровню API» в онлайн-документации SDK, чтобы выделить серым цветом методы, недоступные в версии, для которой вы разрабатываете.
Комментарии:
1. Ах, я полностью пропустил это. Уровень API очень тонко отображен в документации, подлый. Спасибо!