我有一个应用程序,它有fragment
它image button
。问题是它在 5.0 以上工作,5.0
但不低于 5.0。最小 sdk 版本是 17。
不明白这里有什么问题。我有 2 个例外。
一是RuntimeException
为image button
。第二个是ResourceNotFoundException
工厂选择器文件。
日志:第一个异常——
java.lang.RuntimeException:无法启动活动 ComponentInfo{com.example.siddhi.timetablelayout/com.example.siddhi.timetablelayout.MainActivity}:android.view.InflateException:二进制 XML 文件第 16 行:
膨胀类错误ImageButton
第二个例外——
引起:android.view.InflateException:二进制 XML 文件第 16 行:膨胀类 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);
}
}
工厂选择器:
<?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>
晶圆厂:
<?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: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)
你能告诉我这里有什么问题吗?