膨胀类 ImageButton 时出错

Posted

技术标签:

【中文标题】膨胀类 ImageButton 时出错【英文标题】:Error inflating class ImageButton 【发布时间】:2016-05-28 16:51:43 【问题描述】:

我有一个应用程序,上面有 fragmentimage button。问题是它在5.0 及以上工作,但不低于5.0。最小sdk版本是17。

不明白这里有什么问题。我有 2 个例外。

一个是RuntimeException,对应image button。 其次是 ResourceNotFoundException 用于 fab 选择器文件。

日志: 第一个例外--

java.lang.RuntimeException:无法启动活动 组件信息com.example.siddhi.timetablelayout/com.example.siddhi.timetablelayout.MainActivity: android.view.InflateException:二进制 XML 文件第 16 行:

错误膨胀类ImageButton

第二个例外--

原因:android.view.InflateException:二进制 XML 文件第 16 行:

上线:

主要片段的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);
    


工厂选择器:

   <?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_
    android:layout_ tools:context="com.adgatemedia.offerwallsdk.fragments.MainFragment">

    <RelativeLayout
        android:layout_
        android:layout_>

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

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

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

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

工厂:

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

    <View
        android:id="@+id/myfab_shadow"
        android:layout_
        android:layout_
        android:layout_gravity="center"
        android:background="@drawable/fab_shadow"
        android:focusable="false" />

    <ImageButton
        android:id="@+id/imgbtn_fab"
        android:layout_
        android:layout_
        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 ComponentInfocom.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: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.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: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: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: 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 你能检查一下哪个文件夹包含fab_selector吗? 它的可绘制文件夹。@MustansarSaeed 你的@animator/fab_elevation_selector 是什么 【参考方案1】:

这个异常

02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:引起:java.lang.UnsupportedOperationException: 无法转换为颜色:type=0x2 02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/AndroidRuntime:在 android.content.res.TypedArray.getColor(TypedArray.java:326) 02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/Android运行时:在 android.graphics.drawable.GradientDrawable.inflate(GradientDrawable.java:967) 02-17 05:42:39.445 3247-3247/com.example.siddhi.timetablelayout E/Android运行时:在 android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:885)

得出的结论是fab_selector 中的这条线&lt;solid android:color="?attr/colorAccent" /&gt; 是罪魁祸首。尝试将color改为HEX value,然后测试。

希望这会有所帮助。

【讨论】:

因为我的应用程序中有主题,所以我没有给出十六进制值。它在 5.0 及更高版本上运行。为什么这样? @Mustansar Saeed 可能是 Post Lollipop API 处理这些操作,但 pre-lollipop 不包含这些功能。只是一个疯狂的猜测:) 这并不是真正的“答案”。如果已定义,应该可以使用如图所示的这个主题属性。 但是如何在主题更改时更改 fab 的颜色?如果我提供十六进制值,它不会改变吗? @Mustnsar Saeed @DougStevenson:Sid 可以确认它是否解决了他的问题。【参考方案2】:

是的。您需要创建一个类似“drawable-v21”的文件夹。

【讨论】:

【参考方案3】:

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

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

【讨论】:

【参考方案4】:

这是谷歌上的***结果,我想分享为我解决相同错误的原因(尽管与上述问题不同)

确保构建工具版本是最新的 我有一个矢量 src drawable 和一个高程值(仅限 API 21+)的组合,这似乎使它绊倒了。我为 v21 制作了一个单独的布局以具有高程值(但保持矢量可在任何地方绘制),这为我解决了它

【讨论】:

【参考方案5】:

image.png 的格式不正确。 我的解决方案: 我在我的电脑上安装了 greenshot 从我的屏幕上抓取图像 https://getgreenshot.org/ 然后我将图像保存为我的 res/drawable 中的 png 文件。 这对我有用

【讨论】:

【参考方案6】:

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

android:background="@drawable/rounded_corner_image_view"

我的背景可绘制是 v24。创建了一个较低的可绘制对象和中提琴

【讨论】:

以上是关于膨胀类 ImageButton 时出错的主要内容,如果未能解决你的问题,请参考以下文章

膨胀类 ImageView 时出错 - android.view.InflateException:二进制 XML 文件第 10 行:膨胀类 ImageView 时出错

膨胀类 CollapsingToolbarLayout 时出错

膨胀内部类视图时出错

膨胀类片段时出错

在 RecyclerView 上膨胀类 ImageView 时出错

膨胀类 ImageView 时出错