Android Studioを使用しています。レイアウトアプリケーションでtextviewを使用すると、エラーが表示されて終了します:
Android.view.InflateException: Binary XML file line #26: Error inflating class Android.widget.TextView
at Android.view.LayoutInflater.createView(LayoutInflater.Java:633)
at com.Android.internal.policy.impl.PhoneLayoutInflater.onCreateView(PhoneLayoutInflater.Java:55)
at Android.view.LayoutInflater.onCreateView(LayoutInflater.Java:682)
at Android.view.LayoutInflater.createViewFromTag(LayoutInflater.Java:741)
at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:806)
at Android.view.LayoutInflater.rInflate(LayoutInflater.Java:809)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:504)
at Android.view.LayoutInflater.inflate(LayoutInflater.Java:414)
at com.SubFragment.onCreateView(SubFragment.Java:20)
at Android.support.v4.app.Fragment.performCreateView(Fragment.Java:1786)
at Android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.Java:947)
at Android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.Java:1126)
at Android.support.v4.app.BackStackRecord.run(BackStackRecord.Java:739)
at Android.support.v4.app.FragmentManagerImpl.execPendingActions(FragmentManager.Java:1489)
at Android.support.v4.app.FragmentManagerImpl.executePendingTransactions(FragmentManager.Java:486)
at Android.support.v4.app.FragmentPagerAdapter.finishUpdate(FragmentPagerAdapter.Java:141)
at Android.support.v4.view.ViewPager.populate(ViewPager.Java:1073)
at Android.support.v4.view.ViewPager.populate(ViewPager.Java:919)
at Android.support.v4.view.ViewPager.onMeasure(ViewPager.Java:1441)
at Android.view.View.measure(View.Java:17430)
at Android.widget.LinearLayout.measureVertical(LinearLayout.Java:875)
at Android.widget.LinearLayout.onMeasure(LinearLayout.Java:613)
at Android.view.View.measure(View.Java:17430)
at Android.view.ViewGroup.measureChildWithMargins(ViewGroup.Java:5463)
at Android.widget.FrameLayout.onMeasure(FrameLayout.Java:430)
at Android.view.View.measure(View.Java:17430)
at Android.view.ViewGroup.measureChildWithMargins(ViewGroup.Java:5463)
at Android.widget.FrameLayout.onMeasure(FrameLayout.Java:430)
at Android.view.View.measure(View.Java:17430)
at Android.view.ViewGroup.measureChildWithMargins(ViewGroup.Java:5463)
at Android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.Java:1436)
at Android.widget.LinearLayout.measureVertical(LinearLayout.Java:722)
at Android.widget.LinearLayout.onMeasure(LinearLayout.Java:613)
at Android.view.View.measure(View.Java:17430)
at Android.support.v4.widget.DrawerLayout.onMeasure(DrawerLayout.Java:851)
at Android.view.View.measure(View.Java:17430)
at Android.view.ViewGroup.measureChildWithMargins(ViewGroup.Java:5463)
at Android.widget.FrameLayout.onMeasure(FrameLayout.Java:430)
at Android.view.View.measure(View.Java:17430)
at Android.view.ViewGroup.measureChildWithMargins(ViewGroup.Java:5463)
at Android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.Java:1436)
at Android.widget.LinearLayout.measureVertical(LinearLayout.Java:722)
at Android.widget.LinearLayout.onMeasure(LinearLayout.Java:613)
at Android.view.View.measure(View.Java:17430)
at Android.view.ViewGroup.measureChildWithMargins(ViewGroup.Java:5463)
at Android.widget.FrameLayout.onMeasure(FrameLayout.Java:430)
at Android.view.View.measure(View.Java:17430)
at Android.view.ViewGroup.measureChildWithMargins(ViewGroup.Java:5463)
at Android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.Java:1436)
at Android.widget.LinearLayout.measureVertical(LinearLayout.Java:722)
at Android.widget.LinearLayout.onMeasure(LinearLayout.Java:613)
at Android.view.View.measure(View.Java:17430)
at Android.view.ViewGroup.measureChildWithMargins(ViewGroup.Java:5463)
at Android.widget.FrameLayout.onMeasure(FrameLayout.Java:430)
at com.Android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.Java:2560)
at Android.view.View.measure(View.Java:17430)
そしてここに私のFragmentクラスで
public class SubFragment extends Fragment{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_homescreen, container, false);// getting error here
return rootView;
}
}
XMLコード:
<LinearLayout
Android:layout_margin="10dp"
Android:layout_width="match_parent"
Android:orientation="vertical"
Android:gravity="center_vertical|center_horizontal"
Android:layout_height="0dp"
Android:layout_weight="1"
Android:background="@drawable/offers">
<ImageView
Android:id="@+id/imageButtonOffers"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_centerHorizontal="true"
Android:layout_centerVertical="true"
Android:src="@drawable/offers_icon" />
<TextView
Android:id="@+id/textViewOffers"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_below="@+id/imageButtonOffers"
Android:layout_centerHorizontal="true"
Android:layout_marginTop="5dp"
Android:gravity="center_horizontal"
Android:text="Offer"
Android:textAppearance="?android:attr/textAppearanceMedium"
Android:textColor="@color/white"
Android:textSize="15sp" />
</LinearLayout>
このコードはEclipseで正常に動作しています。 Studioで作業しようとしたときの唯一の問題
Android:background="@drawable/offers"
私はオファーが画像であり、画面よりも大きいことを願っていますので、いくつかのカラーコードに置き換えてください
このような
Android:background="#ff0000"
うまくいくことを願っています。
これもチェック
Android.view.InflateException:Binary XML file line#12:Error inflatating class <unknown>
edit:
この行を削除
Android:textAppearance="?android:attr/textAppearanceMedium"
私はあなたのxmlをクリーンアップし、名前空間を追加しました:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="0dp"
Android:layout_margin="10dp"
Android:layout_weight="1"
Android:background="@drawable/offers"
Android:gravity="center_vertical|center_horizontal"
Android:orientation="vertical" >
<ImageView
Android:id="@+id/imageButtonOffers"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:src="@drawable/offers_icon" />
<TextView
Android:id="@+id/textViewOffers"
Android:layout_width="wrap_content"
Android:layout_height="wrap_content"
Android:layout_marginTop="5dp"
Android:gravity="center_horizontal"
Android:text="Offer"
Android:textAppearance="?android:attr/textAppearanceMedium"
Android:textColor="@color/white"
Android:textSize="15sp" />
</LinearLayout>
LinearLayoutを使用しているため、「Android:layout_below」や「Android:layout_centerHorizontal」などのパラメーターは無効ではありません。
このエラーも発生しました。
TextView
を含む新しい.xml
ファイルを再作成するだけで解決しました。私の場合、エラーはxmlバージョン(v21\abc.xml)でした。コードは、Android version 6(Marshmallow)では、Android version 4.4(KitKat )。
私も同じ問題に直面しました。どのレイアウトにもtools:targetApi="Lollipop"
がないことを確認します。代わりに、2つのレイアウトをlayout
の下に、もう1つをlayout-v21
フォルダーの下に追加します。
古いバージョンのAndroidは、
Android:background="@drawable/rounded_corner"
Android:textSize="?android:textAppearanceMedium"
その場合は、XMLファイルから削除し、JavaまたはKotlinコード(できればtry ... catchまたはif ... else句内)から属性をロードしてみてください。
それが役に立てば幸い