«VFY: мертвый код» при попытке использовать getBytes (кодировка)

#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 очень тонко отображен в документации, подлый. Спасибо!