1
votes

Erreur lors du gonflage de la classe ImageButton empêche l'application de démarrer

Mon application ne démarre pas en raison d'une erreur de gonflage de la classe ImageButton, à cause de cela, le téléphone dit "l'application s'est arrêtée" Etc. J'utilise firebase test lab pour déboguer le problème

les erreurs se produisent sur les appareils Samsung en particulier A20, s7 Edge, s7 (testé avec firebase même problème)

Je suis nouveau sur Android et j'ai essayé de nombreuses solutions de google et SO aucun logiciel n'a fonctionné

Voici le rapport d'erreurs sur Firebase

        <ImageButton
            android:id="@+id/UploadButton"
            android:layout_width="300dp"
            android:layout_height="209dp"
            android:background="@android:color/transparent"
            app:layout_constraintTop_toBottomOf="@+id/flexboxLayout"
            app:srcCompat="@drawable/upload_files_upload"
            android:contentDescription="@string/todo" />


    </com.google.android.flexbox.FlexboxLayout>


    <androidx.constraintlayout.widget.Guideline
        android:id="@+id/guideline7"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        app:layout_constraintGuide_begin="185dp" />


</androidx.constraintlayout.widget.ConstraintLayout>

Voici le XML

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/relativeLayout4"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@color/ic_launcher_background"
    tools:context=".MainActivity">

    <com.google.android.flexbox.FlexboxLayout
        android:id="@+id/flexboxLayout"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        app:alignContent="stretch"
        app:alignItems="stretch"
        app:flexWrap="wrap"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.863"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="@+id/guideline7">


        <TextView
            android:id="@+id/textView"
            android:layout_width="match_parent"
            android:layout_height="48dp"
            android:fontFamily="@font/nunito"
            android:gravity="center_horizontal"
            android:text="@string/welcome_to_smartpractice"
            android:textSize="24sp"
            app:fontFamily="@font/nunito"
            app:layout_alignSelf="baseline"
            tools:layout_editor_absoluteY="100dp"
            tools:targetApi="jelly_bean" />

        <TextView
            android:id="@+id/textView7"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@color/colorPrimaryDark"
            android:gravity="center_horizontal|fill_vertical"
            android:text="@string/docsharesmart"
            android:textColor="@color/ic_launcher_background"
            app:layout_alignSelf="flex_end"
            tools:layout_editor_absoluteY="16dp" />

    </com.google.android.flexbox.FlexboxLayout>

    <com.google.android.flexbox.FlexboxLayout
        android:layout_width="0dp"
        android:layout_height="0dp"
        android:layout_marginStart="8dp"
        android:layout_marginLeft="8dp"
        android:layout_marginTop="4dp"
        android:layout_marginEnd="8dp"
        android:layout_marginRight="8dp"
        android:layout_marginBottom="8dp"
        app:alignContent="center"
        app:alignItems="stretch"
        app:flexDirection="row"
        app:flexWrap="nowrap"
        app:justifyContent="space_between"
        app:layout_constraintBottom_toTopOf="@+id/guideline7"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">

        <ImageView
            android:id="@+id/imageView3"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:contentDescription="@string/logo1"
            app:layout_alignSelf="center"
            app:srcCompat="@drawable/smartpractice_logo_02"
            tools:layout_editor_absoluteX="0dp"
            tools:layout_editor_absoluteY="-46dp" />

        <ImageButton
            android:id="@+id/LoginScreen"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="@null"
            android:contentDescription="@string/loginscreen"
            app:layout_alignSelf="center"
            app:layout_wrapBefore="false"
            app:srcCompat="@drawable/ic_more_vert_black_24dp"
            tools:layout_editor_absoluteX="248dp"
            tools:layout_editor_absoluteY="134dp" />


    </com.google.android.flexbox.FlexboxLayout>

    <com.google.android.flexbox.FlexboxLayout
        android:id="@+id/flexboxLayout2"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_marginStart="8dp"
        android:layout_marginTop="8dp"
        android:layout_marginEnd="8dp"
        android:layout_marginBottom="8dp"
        app:alignContent="stretch"
        app:alignItems="stretch"
        app:flexWrap="wrap"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/flexboxLayout"
        app:layout_constraintVertical_bias="0.146">


4 commentaires

Copie possible de android.view.InflateException: fichier XML binaire : Erreur lors du gonflement du fragment de classe


L'erreur est liée à l'image / l'arrière-plan en cours de chargement


@Bosco Pas du tout pareil


stackoverflow.com/questions/ 57970130 /…


3 Réponses :


1
votes

La raison de votre erreur est que le upload_files_upload ne se trouve pas dans votre dossier drawable :

<ImageButton
            android:id="@+id/UploadButton"
            android:layout_width="300dp"
            android:layout_height="209dp"
            android:background="@android:color/transparent"
            app:layout_constraintTop_toBottomOf="@+id/flexboxLayout" 
            app:srcCompat="@drawable/upload_files_upload"// this line
            android:contentDescription="@string/todo" />


9 commentaires

Je n'ai qu'un seul dossier pouvant être dessiné et l'application fonctionne sur plusieurs appareils sur mon téléphone et sur plusieurs téléphones de mes collègues


Votre vecteur upload_files_upload est-il dessinable?


Oui, cela posera-t-il un problème ??, C'est au format PNG si cela fera une différence


avez-vous défini defaultConfig {vectorDrawables.useSupportLibrary = true} dans votre build.gradle?


Oui, le fait est que l'application fonctionne sur certains téléphones et d'autres non, c'est très déroutant


Quelle est la version Android de votre téléphone?


mettre cette ligne au début de l'activité qui utilisera la ressource peut aider: static {AppCompatDelegate.setCompatVectorFromResourcesEnabled (true); }


Android 9, il fonctionne avec plusieurs autres téléphones dont les versions Android dont je ne suis pas sûr, MAIS j'ai changé d'application: srcCompat = "@ drawable / upload_files_upload" // to android: src = "@ drawable / upload_files_upload" et cela a résolu le problème problème ]


C'est très bien ! et voir cette image: i.stack.imgur.com/1N5Ab.png



2
votes

Cela signifie que upload_files_upload n'est pas trouvé dans le dossier drawble , eh bien cela peut être un cas, où votre fichier peut être présent dans drawable-24 mais pas dans drawble , dans ce cas, ce problème se pose toujours. Le point est votre fichier doit être dans tous les dossiers drawble .


4 commentaires

J'ai juste un dossier pouvant être dessiné, c'est-à-dire "Drawable" Dois-je ajouter de nouveaux dossiers dessinables ou


@RubenMeiring Non, ce n'est pas nécessaire. Je vais essayer de supprimer cette ligne: app: srcCompat = "@ drawable / upload_files_upload" et de reconstruire votre projet. Laissez-moi savoir ce qui se passe


le bouton disparaît c'est un bouton d'image et cela supprime l'image


Il y a peut-être un problème avec votre image, je vais essayer de charger une image différente dans votre ImageButton



0
votes

J'ai résolu le problème J'ai changé d'application: srcCompat = "@ drawable / upload_files_upload" // en android: src = "@ drawable / upload_files_upload" Donc le problème était par app: srcCompat Je l'ai changé en Android: src et ça fonctionne très bien maintenant


0 commentaires