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 View personnalisée génère InflateException


Sujet :

Composants graphiques Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Par défaut Erreur View personnalisée génère InflateException


    J'essaye de créer une view perso, mais lors du chargement j'ai le droit a un bel android.view.InflateException.

    Ma view perso :
    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
    18
    19
    20
    21
    import android.content.Context;
    import android.graphics.Canvas;
    import android.graphics.Color;
    import android.graphics.Paint;
    import android.view.View;
     
    public class ViewfinderView extends View {
    	Paint paint = new Paint();
     
    	public ViewfinderView(Context context) {
    		super(context);
    	}
     
    	@Override
    	protected void onDraw(Canvas canvas) {
    		paint.setColor(Color.RED);
    		paint.setStrokeWidth(1);
    		paint.setStyle(Paint.Style.STROKE);
    		canvas.drawRect(30, 80, 30, 80, paint);
    	}
    }
    Le code qui plante dans l'activity :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_camera_un); //Ligne qui genere l'exception
    }
    Le fichier xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        >
     
        <com.konatic.app.ViewfinderView
            android:layout_width="match_parent"
            android:layout_height="match_parent"/>
    </RelativeLayout>
    Et la stack trace de l'exception :
    04-08 13:40:30.573 4614-4614/com.konatic.app E/AndroidRuntime: FATAL EXCEPTION: main
    Process: com.konatic.app, PID: 4614
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.konatic.app/com.konatic.app.Camera1Activity}: android.view.InflateException: Binary XML file line #8: Error inflating class com.konatic.app.ViewfinderView
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2379)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442)
    at android.app.ActivityThread.access$800(ActivityThread.java:156)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351)
    at android.os.Handler.dispatchMessage(Handler.java:102)
    at android.os.Looper.loop(Looper.java:211)
    at android.app.ActivityThread.main(ActivityThread.java:5389)
    at java.lang.reflect.Method.invoke(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:372)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)
    Caused by: android.view.InflateException: Binary XML file line #8: Error inflating class com.konatic.app.ViewfinderView
    at android.view.LayoutInflater.createView(LayoutInflater.java:616)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:504)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:414)
    at android.view.LayoutInflater.inflate(LayoutInflater.java:365)
    at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276)
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)
    at com.konatic.app.Camera1Activity.onCreate(Camera1Activity.java:70)
    at android.app.Activity.performCreate(Activity.java:5990)
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2332)
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442)*
    at android.app.ActivityThread.access$800(ActivityThread.java:156)*
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351)*
    at android.os.Handler.dispatchMessage(Handler.java:102)*
    at android.os.Looper.loop(Looper.java:211)*
    at android.app.ActivityThread.main(ActivityThread.java:5389)*
    at java.lang.reflect.Method.invoke(Native Method)*
    at java.lang.reflect.Method.invoke(Method.java:372)*
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)*
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)*
    Caused by: java.lang.NoSuchMethodException: <init> [class android.content.Context, interface android.util.AttributeSet]
    at java.lang.Class.getConstructor(Class.java:531)
    at java.lang.Class.getConstructor(Class.java:495)
    at android.view.LayoutInflater.createView(LayoutInflater.java:580)
    at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:743)*
    at android.view.LayoutInflater.rInflate(LayoutInflater.java:806)*
    at android.view.LayoutInflater.inflate(LayoutInflater.java:504)*
    at android.view.LayoutInflater.inflate(LayoutInflater.java:414)*
    at android.view.LayoutInflater.inflate(LayoutInflater.java:365)*
    at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:276)*
    at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:139)*
    at com.konatic.app.Camera1Activity.onCreate(Camera1Activity.java:70)*
    at android.app.Activity.performCreate(Activity.java:5990)*
    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106)*
    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2332)*
    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2442)*
    at android.app.ActivityThread.access$800(ActivityThread.java:156)*
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1351)*
    at android.os.Handler.dispatchMessage(Handler.java:102)*
    at android.os.Looper.loop(Looper.java:211)*
    at android.app.ActivityThread.main(ActivityThread.java:5389)*
    at java.lang.reflect.Method.invoke(Native Method)*
    at java.lang.reflect.Method.invoke(Method.java:372)*
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1020)*
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:815)*
    J'ai fouillé internet et je n'ai pas trouvé de réponse à mon problème.
    Quelqu'un en a une ?

  2. #2
    Modérateur
    Avatar de Hizin
    Homme Profil pro
    Développeur mobile
    Inscrit en
    Février 2010
    Messages
    2 180
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Développeur mobile

    Informations forums :
    Inscription : Février 2010
    Messages : 2 180
    Par défaut
    Au vu de l'erreur, il semble qu'il te manque un constructeur dans ta View custom.

    <init> [class android.content.Context, interface android.util.AttributeSet]
    Celui-ci prendrait un paramètre un Context et un AttributeSet.
    C'est Android, PAS Androïd, ou Androïde didiou !
    Le premier est un OS, le second est la mauvaise orthographe du troisième, un mot français désignant un robot à forme humaine.

    Membre du comité contre la phrase "ça marche PAS" en titre et/ou explication de problème.

    N'oubliez pas de consulter les FAQ Android et les cours et tutoriels Android

  3. #3
    Membre chevronné Avatar de Drowan
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2014
    Messages
    460
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Juin 2014
    Messages : 460
    Par défaut
    C'était ça !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débutant] Deserialisation erreur classe auto-générées (Xsd.exe)
    Par antrax2013 dans le forum C#
    Réponses: 3
    Dernier message: 09/02/2012, 14h17
  2. Erreur de servlet générée
    Par L'aigle de Carthage dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 28/01/2011, 13h36
  3. [1.x] Erreur 404 personnalisée
    Par damiensan dans le forum Symfony
    Réponses: 3
    Dernier message: 16/07/2010, 15h46
  4. Erreur de servlet générée/JSP
    Par javator_zoubair dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 14/08/2006, 08h50
  5. Personnaliser un rapport d'erreur sous Windows XP
    Par Neilos dans le forum Windows
    Réponses: 5
    Dernier message: 21/11/2003, 18h13

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