android包含标签 – 无效的布局引用
我有一个问题,包括通过包含在android layout xml文件中的标签不同的布局。 在指定布局引用(@layout / …)时,我得到了Eclipse ADT中的InflateException,并出现以下错误: InflateException:您必须指定一个有效的布局引用。 布局ID @ layout / func_edit_simple_calculator_toolbox无效。
引用应该是有效的,因为我从我的其他布局的列表中select它,并没有input它。我使用的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),这也不是原因。
closuresEclipse,并再次打开它,并工作。
这比实施onMeasure方法更有意义:-)
如果有人绊倒在这个线程寻找这个错误:
Caused by: android.view.InflateException: You must specifiy a layout in the include tag: <include layout="@layout/layoutID" />
确保你做到:
<include layout="@layout/your_layout" />
而不是:
<include android:layout="@layout/your_layout" />
layout
不应该有android:
在它前面。
我没有看到任何立即错误的,所以这有点奇怪。 我只能想到两件事:1)您是否尝试过使用较短的文件名? 对于文件名中可接受的内容有一些限制,例如没有大写字母或符号,以确保兼容性和文件名的长度可能是其中之一。 2)你是否试过在include中删除一些你的android:…语句,并把它留在<include layout="@layout/..."/>
? 您实际上并不需要在包含中指定其高度和宽度,因为它已在导入的布局文件中定义。
我已经“解决”了这个问题,但是我不知道真正的帮助。 我的布局文件没有经过任何重大改写,实际上也包含了相同的内容。 我在问题消失之前做的唯一显着的改变是覆盖我的自定义视图类中的onMeasure(int,int)方法,实现只是调用setMeasuredDimension(100,100)。
用-clean选项启动eclipse,你的问题是有保证的 。 但启动时间大约需要30秒
检查空的
<include> </include>
标签,(可能是由自动代码格式引起的)。
他们可以出现在你的XML“隐藏”的地方。
对于那些使用Xamarin工作室 – 我添加了一堆来自不同项目的AXML文件,也得到了完全相同的错误。 我只需closures并重新启动Xamarin Studio(PC),这也解决了这个问题。 有趣的是,不同的IDE有相同的问题。
对我来说问题是布局的名称是错误的:我用“ – ”而不是“_”。 直到我试图部署应用程序,AndroidStudio并没有告诉我有什么错