#android #android-layout #android-xml
#Android #android-layout #android-xml
Вопрос:
Я получал случайные сообщения об исключениях от своих пользователей при раздувании макета:
android.view.InflateException: строка двоичного XML-файла # 2: ошибка при раздувании класса com.MyClass
Это случается редко, и я никогда не видел этого сам … до сих пор. Внезапно я получаю это исключение каждый раз, используя точно такой же макет, который я использовал все это время:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<com.comet.android.keyboard.CandidateView
android:id="@ id/candidate"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</com.comet.android.keyboard.CandidateView>
<include layout="@layout/keyboard_view" />
</LinearLayout>
Кроме того, Eclipse всегда сообщал об этом предупреждении в строке # 1:
Для документа не обнаружено грамматических ограничений (DTD или XML-схемы).
Есть идеи о том, почему я получу предупреждение в строке # 1 и исключение в строке # 2? Связаны ли эти два? Этот файл работал до сегодняшнего дня, и я не менял его!
Я заметил, что URL-адрес пространства именhttp://schemas.android.com/apk/res/android не устраняется. Может ли это быть? Это тот же URL, который используется во всех примерах Android.
Ответ №1:
Предупреждение безвредно. Если вы хотите избавиться от этого, посмотрите здесь http://code.google.com/p/android/issues/detail?id=9831
Ошибка странная … не могли бы вы опубликовать код, который вы используете для расширения макета? Также есть ли у вас класс с именем com.MyClass
?
Комментарии:
1. Ошибка исчезла после того, как я полностью очистил все свои проекты и переустановил приложение с нуля. Однако я получал отчеты из поля того же исключения. Вот строка, которая раздувает макет выше: mKeyboardLayout = (View)getLayoutInflater().inflate(R.layout. keyboard_layout, null); Это довольно просто. «com. MyClass» должен был быть заполнителем для фактического имени класса, но это ошибка с моей стороны. Исключение просто говорит «… ошибка раздувания класса» и не упоминает никакого имени класса.