我在我的应用程序中使用了Android设计库的浮动操作按钮,它在Lollipop及以上版本上运行良好,但在早期版本(4.0-4.2.2)上崩溃。我真的卡住了,无法找出问题所在。
错误:
致命异常:主要的错误是二进制XML文件第396行,无法膨胀类android.support.design.widget.FloatingActionButton。在android.view.LayoutInflater.createView(LayoutInflater.java:619)中,android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:693),android.view.LayoutInflater.rInflate(LayoutInflater.java:752),android.view.LayoutInflater.inflate(LayoutInflater.java:495),android.view.LayoutInflater.inflate(LayoutInflater.java:397),com.example.sony.bluedolphintrialapp.DhampureFragment.onCreateView(DhampureFragment.java:18),android.support.v4.app.Fragment.performCreateView(Fragment.java:1789),android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955),android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138),android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740)等方法都出现了错误。android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501),android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:458)在后台运行,android.os.Handler.handleCallback(Handler.java:725),android.os.Handler.dispatchMessage(Handler.java:92),android.os.Looper.loop(Looper.java:137),android.app.ActivityThread.main(ActivityThread.java:5279),java.lang.reflect.Method.invokeNative(Native Method),java.lang.reflect.Method.invoke(Method.java:511),com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102),com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869),dalvik.system.NativeStart.main(Native Method)。造成此问题的原因是java.lang.reflect.InvocationTargetException,在java.lang.reflect.Constructor.constructNative(Native Method),java.lang.reflect.Constructor.newInstance(Constructor.java:417),android.view.LayoutInflater.createView(LayoutInflater.java:593),android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:693),android.view.LayoutInflater.rInflate(LayoutInflater.java:752),android.view.LayoutInflater.inflate(LayoutInflater.java:495),android.view.LayoutInflater.inflate(LayoutInflater.java:397),com.example.sony.bluedolphintrialapp.DhampureFragment.onCreateView(DhampureFragment.java:18),android.support.v4.app.Fragment.performCreateView(Fragment.java:1789),android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:955),android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1138),android.support.v4.app.BackStackRecord.run(BackStackRecord.java:740),android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1501),android.support.v4.app.FragmentManagerImpl$1.run(FragmentManager.java:458),android.os.Handler.handleCallback(Handler.java:725),android.os.Handler.dispatchMessage(Handler.java:92),android.os.Looper.loop(Looper.java:137),android.app.ActivityThread.main(ActivityThread.java:5279),java.lang.reflect.Method.invokeNative(Native Method),java.lang.reflect.Method.invoke(Method.java:511),com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102),com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869),dalvik.system.NativeStart.main(Native Method)。造成此问题的原因是android.content.res.Resources$NotFoundException:资源不是ColorStateList(颜色或路径):TypedValue{t=0x1/d=0x7f0b0008a=-1 r=0x7f0b0008},在android.content.res.Resources.loadColorStateList(Resources.java:2963),android.content.res.TypedArray.getColorStateList(TypedArray.java:343),android.support.design.widget.FloatingActionButton.(FloatingActionButton.java:8,android.support.design.widget.FloatingActionButton.(FloatingActionButton.java:77)。带有浮动操作按钮的XML:
<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/coordinatorLayout_signup"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.example.sony.bluedolphintrialapp.MainActivity">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/headerlayout"
android:layout_width="fill_parent"
android:layout_height="70dp"
android:background="@color/backgroud_user"
android:paddingBottom="10dp"
android:paddingLeft="10dp"
android:paddingRight="10dp">
<TextView
android:id="@+id/headertextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_centerInParent="true"
android:text="@string/title"
android:textColor="#FFF"
android:textSize="22dp" />
</RelativeLayout>
<com.gc.materialdesign.views.ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/scroll"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_below="@+id/headerlayout"
android:background="#F2F5F6">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="0sp"
android:orientation="vertical">
<TableLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:descendantFocusability="beforeDescendants"
android:focusableInTouchMode="true"
android:paddingBottom="60dp"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:paddingTop="10dp"
android:stretchColumns="0">
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:weightSum="1">
<TextView
android:id="@+id/currentlyEmployed_label"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_gravity="center"
android:layout_weight=".4"
android:padding="5dp"
android:textSize="15sp"
android:text="Channel Partner :"
android:textColor="@android:color/black" />
<com.gc.materialdesign.NewMaterials.Spinner
android:id="@+id/currentlyEmployed_spinner_id"
style="@style/Material.Widget.Spinner.Light"
android:layout_width="0dp"
android:layout_height="50dp"
android:layout_weight=".6"
app:rd_style="@style/Material.Drawable.Ripple.Wave.Light"
app:rd_enable="true"
app:rd_delayClick="false"
app:spn_labelEnable="true"
app:spn_label="Select"
app:spn_arrowSwitchMode="true"
android:padding="5dp"
app:spn_arrowAnimDuration="@android:integer/config_shortAnimTime"
app:spn_arrowInterpolator="@android:anim/decelerate_interpolator"/>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="2dp"
android:weightSum="0.5">
<android.support.design.widget.TextInputLayout
android:id="@+id/signup_first_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:padding="5dp"
android:theme="@style/TextLabel"
app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout">
<android.support.v7.widget.AppCompatEditText
android:id="@+id/addplaces_name"
android:layout_width="match_parent"
android:drawableLeft="@drawable/ic_action_person1"
android:drawableStart="@drawable/ic_action_person1"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:paddingLeft="3dp"
android:paddingStart="3dp"
android:paddingRight="3dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="5dp"
android:drawablePadding="5dp"
android:hint="Name"
android:inputType="textPersonName" />
</android.support.design.widget.TextInputLayout>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="1dp"
android:weightSum="0.5">
<android.support.design.widget.TextInputLayout
android:id="@+id/Adress_first_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="1dp"
android:padding="3dp"
android:theme="@style/TextLabel"
app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout">
<android.support.v7.widget.AppCompatEditText
android:id="@+id/adress_name"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_action_time"
android:drawableStart="@drawable/ic_action_time"
android:layout_alignParentTop="true"
android:paddingLeft="3dp"
android:paddingStart="3dp"
android:paddingRight="3dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="5dp"
android:drawablePadding="5dp"
android:hint="Start Time"
android:inputType="time|datetime" />
</android.support.design.widget.TextInputLayout>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="2dp"
android:weightSum="0.5">
<android.support.design.widget.TextInputLayout
android:id="@+id/mobileNo_first_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:padding="5dp"
android:theme="@style/TextLabel"
app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout">
<android.support.v7.widget.AppCompatEditText
android:id="@+id/mobileNo_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_action_time"
android:drawableStart="@drawable/ic_action_time"
android:layout_alignParentTop="true"
android:paddingLeft="3dp"
android:paddingStart="3dp"
android:paddingRight="3dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="5dp"
android:drawablePadding="5dp"
android:hint="End Time"
android:inputType="text|textPostalAddress" />
</android.support.design.widget.TextInputLayout>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="2dp"
android:weightSum="0.5">
<android.support.design.widget.TextInputLayout
android:id="@+id/email_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:padding="5dp"
android:theme="@style/TextLabel"
app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout">
<android.support.v7.widget.AppCompatEditText
android:id="@+id/email_Text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:drawableLeft="@drawable/ic_action_time"
android:layout_alignParentTop="true"
android:paddingLeft="3dp"
android:paddingStart="3dp"
android:paddingRight="3dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="5dp"
android:drawablePadding="5dp"
android:hint="Actual Start Time"
android:inputType="text|textPostalAddress" />
</android.support.design.widget.TextInputLayout>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="2dp"
android:weightSum="0.5">
<android.support.design.widget.TextInputLayout
android:id="@+id/notes_first_label"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:padding="5dp"
android:theme="@style/TextLabel"
app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout">
<android.support.v7.widget.AppCompatEditText
android:id="@+id/notes_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:drawableLeft="@drawable/ic_action_time"
android:paddingLeft="3dp"
android:paddingStart="3dp"
android:paddingRight="3dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="5dp"
android:drawablePadding="5dp"
android:hint="Actual End Time"
android:inputType="text|textPostalAddress" />
</android.support.design.widget.TextInputLayout>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="2dp"
android:weightSum="0.5">
<android.support.design.widget.TextInputLayout
android:id="@+id/variance_field"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:padding="5dp"
android:theme="@style/TextLabel"
app:hintTextAppearance="@style/TextAppearence.App.TextInputLayout">
<android.support.v7.widget.AppCompatEditText
android:id="@+id/variance_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:drawableLeft="@drawable/ic_action_error"
android:paddingLeft="3dp"
android:paddingStart="3dp"
android:paddingRight="3dp"
android:layout_centerHorizontal="true"
android:layout_marginTop="5dp"
android:drawablePadding="5dp"
android:hint="Variance"
android:inputType="text|textPostalAddress" />
</android.support.design.widget.TextInputLayout>
</TableRow>
<TableRow
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_marginBottom="3dp"
android:weightSum="0.5">
<com.dd.CircularProgressButton
android:id="@+id/Button_id"
android:layout_width="0dp"
android:layout_height="50dp"
android:text="Start"
android:padding="5dp"
android:layout_weight=".5"
android:gravity="center|center_horizontal"
android:layout_below="@+id/personmobile_id"
android:layout_marginTop="7sp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:textSize="15sp"
android:textColor="#FFFFFF"
app:cpb_cornerRadius="100dp"
app:cpb_selectorComplete="@color/STOPbutton"
app:cpb_selectorIdle="@color/backgroud_user"
app:cpb_selectorError="@color/sienna"
app:cpb_textComplete="STOP"
app:cpb_textIdle="START"/>
</TableRow>
<TableRow
android:layout_width="20dp"
android:layout_height="0dp"
android:layout_marginBottom="3dp"
android:weightSum="0.5">
<TextView
android:id="@+id/timertext"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="00:00"
android:textColor="?colorPrimary"
android:textStyle="bold"
android:layout_gravity="center"
android:textSize="25sp"
/>
</TableRow>
</TableLayout>
</RelativeLayout>
</com.gc.materialdesign.views.ScrollView>
</RelativeLayout>
<android.support.design.widget.FloatingActionButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:clickable="true"
app:fab_iconSize="@dimen/fab_size_mini"
android:layout_margin="@dimen/fab_margin"
android:layout_gravity="end|bottom|right"
android:src="@drawable/ic_format_list_bulleted_white_48dp"
app:rippleColor="@android:color/white"
android:layout_alignParentBottom="true"
app:backgroundTint="@color/green_dark"
android:layout_centerHorizontal="true"
app:elevation="6dp"
app:pressedTranslationZ="25dp"/>
</android.support.design.widget.CoordinatorLayout>
@color/white
中设置,而不是从Android的资源@android:color/white
中设置。很奇怪。 - Marko