IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Composants graphiques Android Discussion :

[Erreur] Avec un layout en background


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    -
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut [Erreur] Avec un layout en background
    Bonjour,

    Je viens de rencontrer un problème sur une application que je suis entrain de créer. Pour des raisons pratiques, j'ai mis en background un relativeLayout, pour qu'il s'adapte en fonction de la taille de la fenêtre, mais cela ne fonctionne pas, car j'ai l'erreur suivante :

    "android.view.InflateException: Binary XML file line #2: Error inflating class <unknown>"
    Voici mon main.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:background="@layout/background"
        >
    </LinearLayout>
    Et mon background.xml :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    <?xml version="1.0" encoding="utf-8"?>
        <RelativeLayout 
        	android:id="@+id/relativeLayout1" 
        	android:layout_width="fill_parent" 
        	android:layout_height="fill_parent" 
        	xmlns:android="http://schemas.android.com/apk/res/android">
     
    	    <ImageView 
    	    	android:src="@drawable/background_bottom" 
    	    	android:layout_height="wrap_content" 
    	    	android:id="@+id/background_bottom" 
    	    	android:layout_alignParentBottom="true" 
    	    	android:layout_width="fill_parent">
    	    </ImageView>
        </RelativeLayout>
    Une idée de l'erreur ? J'ai cherché sur de nombreux forums anglais, dont certains décrivaient l'erreur comme étant un problème de chargement, sans en expliquer explicitement la solution.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Juin 2011
    Messages : 16
    Par défaut
    Je crois que j'ai eu cette erreur aujourd'hui et je l'ai corrigé en enlevant une ligne vide au début de mon fichier XML.

  3. #3
    Membre confirmé
    Homme Profil pro
    -
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut
    Ce n'est malheureusement pas la solution, mais merci

    Je vous poste les caused by de l'erreur via logcat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Uncaught handler: thread main exiting due to uncaught exception
    java.lang.RuntimeException: Unable to start activity
    ComponentInfo{com.app.application/com.app.application.Application}: 
    Android.view.InflateException: Binary XML file line #2: Error inflating class 
    <unknown>
     
    Caused by: android.view.InflateException: Binary XML file line #2: Error 
    inflating class <unknown>
     
    Caused by: java.lang.reflect.InvocationTargetException
     
    Caused by: android.content.res.Resources$NotFoundException: File 
    res/layout/background.xml from drawable resource ID #0x7f030000
     
    Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #2: 
    invalid drawable tag RelativeLayout

  4. #4
    Membre expérimenté
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2005
    Messages
    103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2005
    Messages : 103
    Par défaut
    Bonjour,

    L'attribut android:background="@layout/background" doit recevoir un drawable (image, couleur, drawable xml), il ne peut recevoir comme valeur un layout XML.

  5. #5
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10 267
    Par défaut
    Bonjour, je pense que background attend un drawable et toi tu lui donnes un RelativeLayout.

    T'as façon de faire est mauvaise.

    En fait il faut que tu créer un fichier xml dans le dossier drawable où tu mettras ton image, je vais rechercher, je l'ai déjà fais.

    Edit :
    Fais ça par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <bitmap
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/scale1"
    android:tileMode="repeat"
    android:dither="true" />

  6. #6
    Membre confirmé
    Homme Profil pro
    -
    Inscrit en
    Novembre 2007
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Novembre 2007
    Messages : 64
    Par défaut
    D'après ce que j'ai compris, et suivant ta réponse, le main.xml attend un drawable, mais pourtant, j'ai bien spécifié que c'était un layout attendu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    android:background="@layout/background"
    J'ai fait comme tu me l'a dit, en remplaçant par bitmap, et en enlevant relativelayout, et l'application ne plante plus (rien ne s'affiche en revanche).

    En fait, est il possible de faire un background en relativeLayout ? Car pour le moment j'ai mis une seule image, mais il y'en aura 2 plus tard, une en haut et une en bas. Ce que je veux, c'est que ces images restent à leur place quelque soit la résolution d'écran.

  7. #7
    Membre prolifique
    Avatar de Ryu2000
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    10 267
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 10 267
    Par défaut
    Moi j'ai l'impression que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Caused by: android.content.res.Resources$NotFoundException: File 
    res/layout/background.xml from drawable resource ID #0x7f030000
     
    Caused by: org.xmlpull.v1.XmlPullParserException: Binary XML file line #2: 
    invalid drawable tag RelativeLayout
    Ça veut dire que le problème est à l'intérieur de background.xml.
    Et qu'un RelativeLayout ce n'est pas un drawable.

    Peut être que tu pourras créer 2 layouts et dans un tu met une image en background et dans l'autre tu mets l'autre image.

Discussions similaires

  1. Layout responsive avec une image en background d'en-tête
    Par Erakis dans le forum Mise en page CSS
    Réponses: 0
    Dernier message: 15/02/2014, 07h04
  2. Erreur avec procédure LockWorkStation ...
    Par simonseztech dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 16/08/2004, 15h33
  3. [Débutant][Conception] Erreur avec une classe interne
    Par Devil Redneck dans le forum Général Java
    Réponses: 5
    Dernier message: 11/06/2004, 15h45
  4. Erreur avec les ADO
    Par megane dans le forum Bases de données
    Réponses: 7
    Dernier message: 08/03/2004, 21h37
  5. Erreur avec WM_COMMAND (BN_CLICKED)
    Par cyberlewis dans le forum Windows
    Réponses: 2
    Dernier message: 09/02/2004, 00h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo