Java 页脚视图上的SetContentView在使用listview(从API 17到API 21)膨胀布局时不再工作
我有一个android应用程序,它有一个页脚视图,可以放大其他布局,在每个布局中启用屏幕底部的相同按钮。它过去工作得很好,但现在安卓5不再工作了。似乎只有在布局中包含ListView时才会停止。跟踪代码,当尝试设置页脚的contentview时,它似乎在工具栏类中调用函数onrtlpropertiechanged。我不知道为什么会调用这个,因为我没有更改RTL属性。我得到一个太多的属性引用,停在:0x01010034消息,然后是一个运行时异常,状态为android.view.InflateException:Binary XML文件行#40:错误膨胀类android.widget.Toolbar 编辑 以下是页脚xml:Java 页脚视图上的SetContentView在使用listview(从API 17到API 21)膨胀布局时不再工作,java,android,xml,Java,Android,Xml,我有一个android应用程序,它有一个页脚视图,可以放大其他布局,在每个布局中启用屏幕底部的相同按钮。它过去工作得很好,但现在安卓5不再工作了。似乎只有在布局中包含ListView时才会停止。跟踪代码,当尝试设置页脚的contentview时,它似乎在工具栏类中调用函数onrtlpropertiechanged。我不知道为什么会调用这个,因为我没有更改RTL属性。我得到一个太多的属性引用,停在:0x01010034消息,然后是一个运行时异常,状态为android.view.InflateExc
<?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" android:weightSum="10"
android:id="@+id/commonlayout" android:background="#FFFFFF"
android:keepScreenOn="true" android:screenOrientation="portrait">
<LinearLayout
android:id="@+id/lldata"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="0dp"
android:layout_weight="9.04"
android:background="#FFFFFF" >
</LinearLayout>
<View
android:layout_width="fill_parent"
android:layout_height="1dp"
android:background="@color/red_color" />
<LinearLayout android:id="@+id/llfooter"
android:layout_weight="1" android:layout_width="fill_parent"
android:orientation="horizontal" android:layout_height="0dp"
android:background="@android:color/black"
android:visibility="visible"
android:gravity="center"
android:layout_margin="0dp" >
<View
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:layout_weight="1.0" />
<Button android:id="@+id/button1"
android:layout_height="fill_parent"
android:layout_width="wrap_content" />
<View
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:layout_weight="1.0" />
<Button android:id="@+id/button2"
android:layout_height="fill_parent"
android:layout_width="wrap_content" />
<View
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:layout_weight="1.0" />
<Button android:id="@+id/button3"
android:layout_height="fill_parent"
android:layout_width="wrap_content" />
<View
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:layout_weight="1.0" />
<Button android:id="@+id/button4"
android:layout_height="fill_parent"
android:layout_width="wrap_content" />
<View
android:layout_height="fill_parent"
android:layout_width="wrap_content"
android:layout_weight="1.0" />
</LinearLayout>
</LinearLayout>
Footer onCreate函数,在setContentView上失败
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_footer);
以及错误日志
02-05 15:04:37.843: E/AndroidRuntime(14394): FATAL EXCEPTION: main
02-05 15:04:37.843: E/AndroidRuntime(14394): Process: com.user.testapp, PID: 14394
02-05 15:04:37.843: E/AndroidRuntime(14394): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.user.testapp/com.user.testapp.Activity1}: android.view.InflateException: Binary XML file line #40: Error inflating class android.widget.Toolbar
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.app.ActivityThread.access$800(ActivityThread.java:144)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.os.Handler.dispatchMessage(Handler.java:102)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.os.Looper.loop(Looper.java:135)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.app.ActivityThread.main(ActivityThread.java:5221)
02-05 15:04:37.843: E/AndroidRuntime(14394): at java.lang.reflect.Method.invoke(Native Method)
02-05 15:04:37.843: E/AndroidRuntime(14394): at java.lang.reflect.Method.invoke(Method.java:372)
02-05 15:04:37.843: E/AndroidRuntime(14394): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
02-05 15:04:37.843: E/AndroidRuntime(14394): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
02-05 15:04:37.843: E/AndroidRuntime(14394): Caused by: android.view.InflateException: Binary XML file line #40: Error inflating class android.widget.Toolbar
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.LayoutInflater.createView(LayoutInflater.java:633)
02-05 15:04:37.843: E/AndroidRuntime(14394): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
02-05 15:04:37.843: E/AndroidRuntime(14394): at com.android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.java:3489)
02-05 15:04:37.843: E/AndroidRuntime(14394): at com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:3561)
02-05 15:04:37.843: E/AndroidRuntime(14394): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:367)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.app.Activity.setContentView(Activity.java:2144)
02-05 15:04:37.843: E/AndroidRuntime(14394): at com.user.testapp.Footer.onCreate(Footer.java:34)
02-05 15:04:37.843: E/AndroidRuntime(14394): at com.user.testapp.Activity1.onCreate(Activity1.java:69)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.app.Activity.performCreate(Activity.java:5933)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
02-05 15:04:37.843: E/AndroidRuntime(14394): ... 10 more
02-05 15:04:37.843: E/AndroidRuntime(14394): Caused by: java.lang.reflect.InvocationTargetException
02-05 15:04:37.843: E/AndroidRuntime(14394): at java.lang.reflect.Constructor.newInstance(Native Method)
02-05 15:04:37.843: E/AndroidRuntime(14394): at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.LayoutInflater.createView(LayoutInflater.java:607)
02-05 15:04:37.843: E/AndroidRuntime(14394): ... 27 more
02-05 15:04:37.843: E/AndroidRuntime(14394): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.RtlSpacingHelper.setDirection(boolean)' on a null object reference
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.widget.Toolbar.onRtlPropertiesChanged(Toolbar.java:296)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.View.resolvePadding(View.java:13245)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.ViewGroup.resolvePadding(ViewGroup.java:6032)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.View.initializeScrollbarsInternal(View.java:4558)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.View.<init>(View.java:4150)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.ViewGroup.<init>(ViewGroup.java:491)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.widget.Toolbar.<init>(Toolbar.java:183)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.widget.Toolbar.<init>(Toolbar.java:179)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.widget.Toolbar.<init>(Toolbar.java:175)
02-05 15:04:37.843: E/AndroidRuntime(14394): ... 30 more
02-05 15:04:37.843:E/AndroidRuntime(14394):致命异常:main
02-05 15:04:37.843:E/AndroidRuntime(14394):进程:com.user.testapp,PID:14394
02-05 15:04:37.843:E/AndroidRuntime(14394):java.lang.RuntimeException:无法启动活动组件信息{com.user.testapp/com.user.testapp.Activity1}:android.view.InflateException:二进制XML文件行#40:膨胀类android.widget.Toolbar时出错
02-05 15:04:37.843:E/AndroidRuntime(14394):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
02-05 15:04:37.843:E/AndroidRuntime(14394):位于android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
02-05 15:04:37.843:E/AndroidRuntime(14394):在android.app.ActivityThread.access$800(ActivityThread.java:144)
02-05 15:04:37.843:E/AndroidRuntime(14394):位于android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
02-05 15:04:37.843:E/AndroidRuntime(14394):位于android.os.Handler.dispatchMessage(Handler.java:102)
02-05 15:04:37.843:E/AndroidRuntime(14394):在android.os.Looper.loop(Looper.java:135)上
02-05 15:04:37.843:E/AndroidRuntime(14394):位于android.app.ActivityThread.main(ActivityThread.java:5221)
02-05 15:04:37.843:E/AndroidRuntime(14394):位于java.lang.reflect.Method.invoke(本机方法)
02-05 15:04:37.843:E/AndroidRuntime(14394):位于java.lang.reflect.Method.invoke(Method.java:372)
02-05 15:04:37.843:E/AndroidRuntime(14394):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
02-05 15:04:37.843:E/AndroidRuntime(14394):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
02-05 15:04:37.843:E/AndroidRuntime(14394):由以下原因引起:android.view.InflateException:二进制XML文件行#40:对类android.widget.Toolbar进行膨胀时出错
02-05 15:04:37.843:E/AndroidRuntime(14394):在android.view.LayoutInflater.createView(LayoutInflater.java:633)
02-05 15:04:37.843:E/AndroidRuntime(14394):位于com.android.internal.policy.impl.PhoneLayoutFlater.onCreateView(PhoneLayoutFlater.java:55)
02-05 15:04:37.843:E/AndroidRuntime(14394):在android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
02-05 15:04:37.843:E/AndroidRuntime(14394):在android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
02-05 15:04:37.843:E/AndroidRuntime(14394):在android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
02-05 15:04:37.843:E/AndroidRuntime(14394):在android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
02-05 15:04:37.843:E/AndroidRuntime(14394):在android.view.LayoutInflater.inflate(LayoutInflater.java:504)
02-05 15:04:37.843:E/AndroidRuntime(14394):在android.view.LayoutInflater.inflate(LayoutInflater.java:414)
02-05 15:04:37.843:E/AndroidRuntime(14394):在android.view.LayoutInflater.充气(LayoutInflater.java:365)
02-05 15:04:37.843:E/AndroidRuntime(14394):在com.android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.java:3489)
02-05 15:04:37.843:E/AndroidRuntime(14394):位于com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:3561)
02-05 15:04:37.843:E/AndroidRuntime(14394):位于com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:367)
02-05 15:04:37.843:E/AndroidRuntime(14394):位于android.app.Activity.setContentView(Activity.java:2144)
02-05 15:04:37.843:E/AndroidRuntime(14394):位于com.user.testapp.Footer.onCreate(Footer.java:34)
02-05 15:04:37.843:E/AndroidRuntime(14394):位于com.user.testapp.Activity1.onCreate(Activity1.java:69)
02-05 15:04:37.843:E/AndroidRuntime(14394):在android.app.Activity.performCreate(Activity.java:5933)上
02-05 15:04:37.843:E/AndroidRuntime(14394):在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)上
02-05 15:04:37.843:E/AndroidRuntime(14394):在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
02-05 15:04:37.843:E/AndroidRuntime(14394):。。。10多
02-05 15:04:37.843:E/AndroidRuntime(14394):由以下原因引起:java.lang.reflect.InvocationTargetException
02-05 15:04:37.843:E/AndroidRuntime(14394):位于java.lang.reflect.Constructor.newInstance(本机方法)
02-05 15:04:37.843:E/AndroidRuntime(14394):位于java.lang.reflect.Constructor.newInstance(Constructor.java:288)
02-05 15:04:37.843:E/AndroidRuntime(14394):在android.view.LayoutInflater.createView(LayoutInflater.java:607)
02-05 15:04:37.843:E/AndroidRuntime(14394):。。。还有27个
02-05 15:04:37.843:E/AndroidRuntime(14394):由以下原因引起:java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法“void android.widget.RtlSpacingHelper.setDirection(布尔)”
02-05 15:04:37.843:E/AndroidRuntime(14394):在android.widget.Toolbar.onrtlpropertiechanged(Toolbar.java:296)
02-05 15:04:37.843:E/AndroidRuntime(14394):在android.view.view.resolvePadding(view.java:13245)
02-05 15:04:37.843:E/AndroidRuntime(14394):
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_footer);
02-05 15:04:37.843: E/AndroidRuntime(14394): FATAL EXCEPTION: main
02-05 15:04:37.843: E/AndroidRuntime(14394): Process: com.user.testapp, PID: 14394
02-05 15:04:37.843: E/AndroidRuntime(14394): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.user.testapp/com.user.testapp.Activity1}: android.view.InflateException: Binary XML file line #40: Error inflating class android.widget.Toolbar
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.app.ActivityThread.access$800(ActivityThread.java:144)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.os.Handler.dispatchMessage(Handler.java:102)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.os.Looper.loop(Looper.java:135)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.app.ActivityThread.main(ActivityThread.java:5221)
02-05 15:04:37.843: E/AndroidRuntime(14394): at java.lang.reflect.Method.invoke(Native Method)
02-05 15:04:37.843: E/AndroidRuntime(14394): at java.lang.reflect.Method.invoke(Method.java:372)
02-05 15:04:37.843: E/AndroidRuntime(14394): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
02-05 15:04:37.843: E/AndroidRuntime(14394): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
02-05 15:04:37.843: E/AndroidRuntime(14394): Caused by: android.view.InflateException: Binary XML file line #40: Error inflating class android.widget.Toolbar
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.LayoutInflater.createView(LayoutInflater.java:633)
02-05 15:04:37.843: E/AndroidRuntime(14394): at com.android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.java:55)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.LayoutInflater.onCreateView(LayoutInflater.java:682)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:741)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.LayoutInflater.rInflate(LayoutInflater.java:809)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
02-05 15:04:37.843: E/AndroidRuntime(14394): at com.android.internal.policy.impl.PhoneWindow.generateLayout(PhoneWindow.java:3489)
02-05 15:04:37.843: E/AndroidRuntime(14394): at com.android.internal.policy.impl.PhoneWindow.installDecor(PhoneWindow.java:3561)
02-05 15:04:37.843: E/AndroidRuntime(14394): at com.android.internal.policy.impl.PhoneWindow.setContentView(PhoneWindow.java:367)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.app.Activity.setContentView(Activity.java:2144)
02-05 15:04:37.843: E/AndroidRuntime(14394): at com.user.testapp.Footer.onCreate(Footer.java:34)
02-05 15:04:37.843: E/AndroidRuntime(14394): at com.user.testapp.Activity1.onCreate(Activity1.java:69)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.app.Activity.performCreate(Activity.java:5933)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
02-05 15:04:37.843: E/AndroidRuntime(14394): ... 10 more
02-05 15:04:37.843: E/AndroidRuntime(14394): Caused by: java.lang.reflect.InvocationTargetException
02-05 15:04:37.843: E/AndroidRuntime(14394): at java.lang.reflect.Constructor.newInstance(Native Method)
02-05 15:04:37.843: E/AndroidRuntime(14394): at java.lang.reflect.Constructor.newInstance(Constructor.java:288)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.LayoutInflater.createView(LayoutInflater.java:607)
02-05 15:04:37.843: E/AndroidRuntime(14394): ... 27 more
02-05 15:04:37.843: E/AndroidRuntime(14394): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.RtlSpacingHelper.setDirection(boolean)' on a null object reference
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.widget.Toolbar.onRtlPropertiesChanged(Toolbar.java:296)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.View.resolvePadding(View.java:13245)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.ViewGroup.resolvePadding(ViewGroup.java:6032)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.View.initializeScrollbarsInternal(View.java:4558)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.View.<init>(View.java:4150)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.view.ViewGroup.<init>(ViewGroup.java:491)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.widget.Toolbar.<init>(Toolbar.java:183)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.widget.Toolbar.<init>(Toolbar.java:179)
02-05 15:04:37.843: E/AndroidRuntime(14394): at android.widget.Toolbar.<init>(Toolbar.java:175)
02-05 15:04:37.843: E/AndroidRuntime(14394): ... 30 more