ImageButton 膨胀类错误

9

我有一个应用程序,其中包含片段图像按钮。问题是它在5.0及以上版本上运行正常,但在5.0以下版本上无法正常工作。最小SDK版本为17。

不知道这里出了什么问题。我得到了两个异常。

第一个是image buttonRuntimeException。 第二个是fab选择器文件的ResourceNotFoundException

日志: 第一个异常--

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.siddhi.timetablelayout/com.example.siddhi.timetablelayout.MainActivity}: android.view.InflateException: Binary XML file line #16:

错误膨胀类ImageButton

第二个异常--

Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class ImageButton

在此行:

View view = inflater.inflate(R.layout.fragment_main, container, false); 主要片段。

主要片段:

public class MainFragment extends Fragment {

    private ViewPager viewPager;
    private TabsPagerAdapter mAdapter;
    private CharSequence Titles[]={"Mon","Tue","Wed","Thu","Fri","Sat","Sun"};
    private int Numboftabs =7;
    private SlidingTabLayout tabs;
    private Intent i;

    public MainFragment() {
        // Required empty public constructor
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View view = inflater.inflate(R.layout.fragment_main, container, false);
        setupUI(view);
        return view;
    }
    void setupUI(View view)
    {
        FrameLayout fab = (FrameLayout)view.findViewById(R.id.main_fab);
        ImageButton imageButton = (ImageButton)view.findViewById(R.id.imgbtn_fab);


        imageButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String day;
                Boolean editMode = false;

                if(tabs.getCurrentTab() == 0)
                {
                    day = "Mon";
                    i = new Intent(getActivity(),AddEventActivity.class);
                    i.putExtra("day",day);
                    i.putExtra("EditMode",editMode);
                    startActivity(i);

                }
                else if(tabs.getCurrentTab() == 1)
                {
                    day = "Tue";
                    i = new Intent(getActivity(),AddEventActivity.class);
                    i.putExtra("day",day);
                    i.putExtra("EditMode",editMode);
                    startActivity(i);
                }
                else if(tabs.getCurrentTab() == 2)
                {
                    day = "Wed";
                    i = new Intent(getActivity(),AddEventActivity.class);
                    i.putExtra("day",day);
                    i.putExtra("EditMode",editMode);
                    startActivity(i);
                }
                else if(tabs.getCurrentTab() == 3)
                {
                    day = "Thu";
                    i = new Intent(getActivity(),AddEventActivity.class);
                    i.putExtra("day",day);
                    i.putExtra("EditMode",editMode);
                    startActivity(i);
                }

                else if(tabs.getCurrentTab() == 4)
                {
                    day = "Fri";
                    i = new Intent(getActivity(),AddEventActivity.class);
                    i.putExtra("day",day);
                    i.putExtra("EditMode",editMode);
                    startActivity(i);
                }
                else if(tabs.getCurrentTab() == 5)
                {
                    day = "Sat";
                    i = new Intent(getActivity(),AddEventActivity.class);
                    i.putExtra("day",day);
                    i.putExtra("EditMode",editMode);
                    startActivity(i);
                }

                else if(tabs.getCurrentTab() == 6)
                {
                    day = "Sun";
                    i = new Intent(getActivity(),AddEventActivity.class);
                    i.putExtra("day",day);
                    i.putExtra("EditMode",editMode);
                    startActivity(i);
                }
                Log.d("tab",tabs.getCurrentTab() + "");
            }
        });


        mAdapter =  new TabsPagerAdapter(getFragmentManager(),Titles,Numboftabs);
        viewPager = (ViewPager)view.findViewById(R.id.pager);
        viewPager.setAdapter(mAdapter);
        tabs = (SlidingTabLayout)view.findViewById(R.id.tabs);
        tabs.setDistributeEvenly(true);
        tabs.setCustomTabColorizer(new SlidingTabLayout.TabColorizer() {
            @Override
            public int getIndicatorColor(int position) {
                return getResources().getColor(R.color.tab_scroll_color);
            }
        });
        tabs.setViewPager(viewPager);
    }

}

选择器:

Fab选择器:

   <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:state_pressed="true">
        <shape android:shape="oval">
            <solid android:color="?attr/colorAccent" />
        </shape>
    </item>

    <item android:state_focused="true">
        <shape android:shape="oval">
            <solid android:color="?attr/colorAccent" />
        </shape>
    </item>

    <item>
        <shape android:shape="oval">
            <solid android:color="?attr/colorAccent" />
        </shape>
    </item>

</selector>

主要片段:

    <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent" tools:context="com.adgatemedia.offerwallsdk.fragments.MainFragment">

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <utils.SlidingTabLayout
            android:id="@+id/tabs"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:elevation="2dp"
            android:background="?attr/colorPrimary"
            android:layout_alignParentTop="true" />

        <android.support.v4.view.ViewPager
            android:id="@+id/pager"
            android:layout_height="match_parent"
            android:layout_width="match_parent"
            android:layout_below="@+id/tabs" />

        <LinearLayout
            android:orientation="horizontal"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentEnd="true"
            android:layout_alignParentRight="true"
            android:layout_gravity="bottom|end">

            <include layout="@layout/myfab"/>
        </LinearLayout>
    </RelativeLayout>
</FrameLayout>

Fab :

   <?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_fab"
    android:layout_width="100dp"
    android:layout_height="100dp"
    android:layout_gravity="bottom|end">

    <View
        android:id="@+id/myfab_shadow"
        android:layout_width="72dp"
        android:layout_height="72dp"
        android:layout_gravity="center"
        android:background="@drawable/fab_shadow"
        android:focusable="false" />

    <ImageButton
        android:id="@+id/imgbtn_fab"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:background="@drawable/fab_selector"
        android:cropToPadding="true"
        android:padding="10dp"
        android:src="@drawable/ic_add_white_36dp"
        android:stateListAnimator="@animator/fab_elevation_selector" />

</FrameLayout>

完整的堆栈跟踪:

 FATAL EXCEPTION: main
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime: java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.siddhi.timetablelayout/com.example.siddhi.timetablelayout.MainActivity}: android.view.InflateException: Binary XML file line #16: Error inflating class ImageButton
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.app.ActivityThread.access$600(ActivityThread.java:141)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:99)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:137)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:5041)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at java.lang.reflect.Method.invokeNative(Native Method)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:511)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at dalvik.system.NativeStart.main(Native Method)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:  Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class ImageButton
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:704)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.view.LayoutInflater.rInflate(LayoutInflater.java:746)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.view.LayoutInflater.parseInclude(LayoutInflater.java:830)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.view.LayoutInflater.rInflate(LayoutInflater.java:736)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.view.LayoutInflater.rInflate(LayoutInflater.java:749)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.view.LayoutInflater.inflate(LayoutInflater.java:489)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.view.LayoutInflater.inflate(LayoutInflater.java:396)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at com.example.siddhi.timetablelayout.MainFragment.onCreateView(MainFragment.java:33)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.support.v4.app.Fragment.performCreateView(Fragment.java:1962)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1067)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1248)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:738)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:1613)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:330)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:547)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:1164)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.app.Activity.performStart(Activity.java:5114)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2153)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:223002-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.app.ActivityThread.access$600(ActivityThread.java:14102-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:123402-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:9902-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:13702-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:504102-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at java.lang.reflect.Method.invokeNative(Native Method) 
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:51102-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:79302-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:56002-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at dalvik.system.NativeStart.main(Native Method) 
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:  Caused by: android.content.res.Resources$NotFoundException: File res/drawable/fab_selector.xml from drawable resource ID #0x7f020081
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.content.res.Resources.loadDrawable(Resources.java:1953)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.content.res.TypedArray.getDrawable(TypedArray.java:601)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.view.View.<init>(View.java:3330)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.widget.ImageView.<init>(ImageView.java:114)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.widget.ImageButton.<init>(ImageButton.java:87)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.support.v7.widget.AppCompatImageButton.<init>(AppCompatImageButton.java:59)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.support.v7.widget.AppCompatImageButton.<init>(AppCompatImageButton.java:55)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.support.v7.app.AppCompatViewInflater.createView(AppCompatViewInflater.java:107)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.support.v7.app.AppCompatDelegateImplV7.createView(AppCompatDelegateImplV7.java:938)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.support.v7.app.AppCompatDelegateImplV7.onCreateView(AppCompatDelegateImplV7.java:992)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.support.v4.view.LayoutInflaterCompatHC$FactoryWrapperHC.onCreateView(LayoutInflaterCompatHC.java:44)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.view.LayoutInflater$FactoryMerger.onCreateView(LayoutInflater.java:171)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:675)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.view.LayoutInflater.rInflate(LayoutInflater.java:74602-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.view.LayoutInflater.parseInclude(LayoutInflater.java:83002-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.view.LayoutInflater.rInflate(LayoutInflater.java:73602-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.view.LayoutInflater.rInflate(LayoutInflater.java:74902-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.view.LayoutInflater.rInflate(LayoutInflater.java:74902-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.view.LayoutInflater.inflate(LayoutInflater.java:48902-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.view.LayoutInflater.inflate(LayoutInflater.java:39602-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at com.example.siddhi.timetablelayout.MainFragment.onCreateView(MainFragment.java:3302-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.support.v4.app.Fragment.performCreateView(Fragment.java:196202-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:106702-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:124802-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.support.v4.app.BackStackRecord.run(BackStackRecord.java:73802-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.java:161302-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.support.v4.app.FragmentController.execPendingActions(FragmentController.java:33002-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.support.v4.app.FragmentActivity.onStart(FragmentActivity.java:54702-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.app.Instrumentation.callActivityOnStart(Instrumentation.java:116402-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.app.Activity.performStart(Activity.java:511402-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:215302-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:223002-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.app.ActivityThread.access$600(ActivityThread.java:14102-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:123402-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.os.Handler.dispatchMessage(Handler.java:9902-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.os.Looper.loop(Looper.java:13702-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.app.ActivityThread.main(ActivityThread.java:504102-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at java.lang.reflect.Method.invokeNative(Native Method) 
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at java.lang.reflect.Method.invoke(Method.java:51102-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:79302-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:56002-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at dalvik.system.NativeStart.main(Native Method) 
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:  Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x2
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.content.res.TypedArray.getColor(TypedArray.java:326)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.graphics.drawable.GradientDrawable.inflate(GradientDrawable.java:967)
02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:     at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:885)

请问这里有什么问题吗?


请发布完整的堆栈跟踪,而不是部分跟踪。 - Gabe Sechan
抱歉,我无法查看您编辑后的问题。请提供原始文本以便我进行翻译。 - Sid
请问您能否检查一下哪个文件夹包含 fab_selector - Mustansar Saeed
它的drawable文件夹。@MustansarSaeed - Sid
你的@animator/fab_elevation_selector是什么? - KDeogharkar
这是一个用于fab动画的xml文件。@KDeogharkar - Sid
6个回答

8

这个异常提示

02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime: Caused by: java.lang.UnsupportedOperationException: Can't convert to color: type=0x2 02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime: at android.content.res.TypedArray.getColor(TypedArray.java:326) 02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime: at android.graphics.drawable.GradientDrawable.inflate(GradientDrawable.java:967) 02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime: at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:885)

表明在fab_selector中的<solid android:color="?attr/colorAccent" />是罪魁祸首。请尝试将color更改为HEX value再进行测试。

希望这可以帮到你。


可能情况是,Post Lollipop API 处理这些操作,但 Pre-Lollipop 不包含这些函数。只是一个猜测 :) - Mustansar Saeed
这并不是一个真正的“答案”。如果定义了主题属性,应该可以像所示那样使用它。 - Doug Stevenson
但是,当主题更改时,我如何更改fab的颜色?如果我提供十六进制值,它不会改变,对吧?@Mustnsar Saeed - Sid
@DougStevenson:Sid可以确认是否解决了他的问题。 - Mustansar Saeed
很好,这起作用了...但我不明白如何使用不同的资源文件?Fab选择器只有一个,如果我有三个主题,则有三种不同的强调颜色...如何应用到这里?@MustansarSaeed - Sid
显示剩余4条评论

4
是的,您需要创建一个名为“drawable-v21”的文件夹。

4

我也遇到了这个问题,但是我解决了它。

在我的情况下,错误是由于我导入的ImageButton图像被Android Studio自动保存在drawable-v24文件夹中。我从那里复制了png文件并将其粘贴到drawable文件夹中。


0

图片.png的格式不正确。 我的解决方案: 我在我的电脑上安装了Greenshot来截取屏幕上的图像 https://getgreenshot.org/ 然后我将图像保存为png文件放在我的res/drawable目录下。 这对我起作用了


0

这是谷歌上的一项顶级结果,我想分享一下我解决了相同错误的方法(虽然不是与上面完全相同的问题)

  • 确保构建工具版本是最新的
  • 我使用了vector src drawable和elevation value的组合(仅适用于API 21+),似乎会导致问题。我为v21制作了一个单独的布局以拥有elevation值(但在任何地方都保留了vector drawable),这对我解决了问题。

0

我解决了我的问题(rounded_corner_image_view.xml (v24)):

android:background="@drawable/rounded_corner_image_view"

我的背景drawable是v24。创建了一个更低级的drawable,就完成了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接