web-dev-qa-db-fra.com

Ligne de fichier XML binaire n ° 26: erreur lors du gonflage de la classe Android.widget.TextView

J'utilise Android Studio, lorsque j'utilise TextView dans mon application de mise en page qui ferme l'affichage de l'erreur

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)

et ici dans ma classe de 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;
    }


}

Code 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>

ce code fonctionne bien avec Eclipse. seul problème lorsque j'essaie de travailler dans Studio

9
Nama
Android:background="@drawable/offers"

j'espère que les offres sont image et son plus grand que l'écran alors remplacez par un code de couleur n essayez

Comme ça

Android:background="#ff0000"

esperons que ça marche..

vérifier cela aussi 

Android.view.InflateException: ligne de fichier XML binaire # 12: erreur de gonflage de la classe <inconnu>

modifier:

enlever cette ligne

Android:textAppearance="?android:attr/textAppearanceMedium"
11
M S Gadag

J'ai nettoyé votre XML et ajouté le namespace:

<?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>

Comme vous utilisez un LinearLayout, les paramètres tels que "Android: layout_below" ou "Android: layout_centerHorizontal" ne sont pas invalides.

1
Juanjo Vega

J'ai aussi rencontré cette erreur.

Je l'ai résolu en recréant simplement le nouveau fichier .xml contenant TextView. Dans mon cas, l'erreur était la version xml (v21\abc.xml) . Le code fonctionnait bien dans la version Android 6(Marshmallow) plutôt que de générer une erreur lors de l'exécution sous Android version 4.4 (KitKat).

1
Omi

Je suis confronté au même problème . Assurez-vous de ne pas avoir tools:targetApi="Lollipop" dans aucun de vos modèles, au lieu de deux, l'un sous la variable layout, ajoutez l'autre sous le dossier layout-v21

1
Esir Kings

Il semble que les anciennes versions d’Android ne prennent pas en charge les balises telles que,

Android:background="@drawable/rounded_corner"
Android:textSize="?android:textAppearanceMedium"

Dans ce cas, supprimez-le du fichier XML et essayez de charger les attributs à partir du code Java ou Kotlin (de préférence dans une clause try ... catch ou if ... else).

J'espère que ça aide

0
Ashwin Balani