У меня есть проблема включая другое расположение через включать тег в XML-файле расположения андроида. Когда specifing ссылка расположения (@layout/...), я получаю InflateException в ADT Eclipse со следующей ошибкой: InflateException: Вы должны specifiy допустимая ссылка расположения. Идентификатор расположения @layout/func_edit_simple_calculator_toolbox не действителен.
ссылка должна быть действительной, поскольку я выбрал ее из список моих других разметок и не вводил ее. Я использую android sdk v2.1
это файлы расположения
func_edit_simple_calculator_toolbox.xml
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="wrap_content" android:layout_width="wrap_content">
<TableRow android:id="@+id/TableRow01" android:layout_width="wrap_content"android:layout_height="wrap_content">
<Button android:id="@+id/Button01" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1"></Button>
<Button android:id="@+id/Button02" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="2"></Button>
<Button android:id="@+id/Button03" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="3"></Button>
<Button android:id="@+id/Button04" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="+"></Button>
</TableRow>
<TableRow android:id="@+id/TableRow02" android:layout_width="wrap_content" android:layout_height="wrap_content">
<Button android:id="@+id/Button05" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="4"></Button>
<Button android:id="@+id/Button06" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="5"></Button>
<Button android:id="@+id/Button07" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="6"></Button>
<Button android:id="@+id/Button08" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="-"></Button>
</TableRow>
</TableLayout>
function_editor_layout.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<com.calculoid.FunctionView android:id="@+id/function_view" android:layout_width="fill_parent" android:layout_height="fill_parent"/>
<include android:id="@+id/include01" android:layout_width="wrap_content" android:layout_height="wrap_content" layout="@layout/func_edit_simple_calculator_toolbox"></include>
</LinearLayout>
Кто-либо знает то, что могло быть проблемой?
заранее спасибо
Думаю, я должен упомянуть, как я решил ту же проблему. Попробовал очистить проект, но ничего не вышло. У меня довольно большие имена для макета (chrono_first_small_field), и это тоже не было причиной.
Закрыл Eclipse и просто открыл его снова, и это сработало.
Это имеет больше смысла, чем реализация метода onMeasure :-)
Я «решил» проблему, но не знаю, что действительно помогло. Мои файлы макета не подвергались серьезной переписыванию и практически содержат то же самое. Единственное заметное изменение, которое я сделал до того, как проблема исчезла, - это переопределить метод onMeasure (int, int) в моем пользовательском классе представления, при этом реализация просто вызвала setMeasuredDimension (100, 100).
Я не вижу в этом ничего плохого, так что это немного странно. Я могу думать только о двух вещах: 1) Пробовали ли вы использовать более короткое имя файла? Есть несколько ограничений на то, что допустимо в имени файла, например, отсутствие заглавных букв или символов, чтобы обеспечить совместимость, и длина имени файла может быть одним из них. 2) Пробовали ли вы удалить некоторые утверждения android:... в include и оставить только
? На самом деле вам не нужно указывать его высоту и ширину в include, поскольку они уже определены в импортированном файле макета.