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

Android Discussion :

Problème avec Eclipse/SQLite


Sujet :

Android

  1. #1
    Membre régulier
    Homme Profil pro
    Etudiant Informatique
    Inscrit en
    Janvier 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant Informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 9
    Par défaut Problème avec Eclipse/SQLite
    Bonjour à tous.

    Alors voilà mon problème: J'ai suivi à la lettre le tutoriel Comment utiliser SQLite sous Android mais le problème est que ça me met que mon application s'est arrêtée inopinément.

    Je voulais donc savoir s'il ne fallait pas "lier" Sqlite et Eclipse ou le problème pourrait venir d'ailleurs ?

    Je ne poste pas mon code car il est quasi identique à celui du tutoriel mais si vous le souhaitez je peux le poster.

    Merci d'avance.

  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
    Ce qu'il est intéressant de savoir est :
    - quel tutoriel as-tu utilisé ?
    - quelle est l'erreur dans le LogCat ?
    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 régulier
    Homme Profil pro
    Etudiant Informatique
    Inscrit en
    Janvier 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant Informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 9
    Par défaut
    Celui-ci : http://a-renouard.developpez.com/tut...ndroid/sqlite/ // J'ai juste modifié le nom des variables et des fonctions.

    Et j'ai ce message : Nom : bdd.jpg
Affichages : 139
Taille : 263,9 Ko

  4. #4
    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
    Merci :]

    Alors, ton erreur est assez claire : "can't instantiate class.com.example.bdd.BaseSQLite; no empty constructor". La première instruction d'un de tes constructeurs ne serait pas un super(); par hasard ?
    Enfin, cette exception indique qu'il recherche, à un moment, un constructeur sans argument et qu'il ne le trouve pas. Donc soit tu as un appel à un super();, soit il est nécessaire pour une classe étendant SQLiteOpenHelper d'avoir un constructeur par défaut.
    En lisant la documentation, SQLiteOpenHelper ne possède pas de constructeur sans argument, donc il semblerait que la piste du super(); soit la bonne. Peut-être un constructeur rajouté automatiquement par Eclipse à la génération de la classe.
    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

  5. #5
    Membre régulier
    Homme Profil pro
    Etudiant Informatique
    Inscrit en
    Janvier 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant Informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 9
    Par défaut
    Parles tu de la classe qui étend SQLiteOpenHelper ou une autre ?
    Car dans celle-ci j'ai bien le super avec les arguments qui vont avec :

    Code Java : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public class BaseSQLite extends SQLiteOpenHelper {
     
    	public BaseSQLite(Context context, String name, CursorFactory factory,
    			int version) {
    		super(context, name, factory, version);
    		// TODO Auto-generated constructor stub
    	}

  6. #6
    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
    Je parle de la classe BaseSQLite, comme le remonte la stacktrace que tu as.
    N'as-tu pas un autre constructeur ? Ou un simple super(); qui traîne dans cette classe ?
    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

  7. #7
    Membre régulier
    Homme Profil pro
    Etudiant Informatique
    Inscrit en
    Janvier 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant Informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 9
    Par défaut
    Voilà ma classe complète :
    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    package com.example.bdd;
     
    import android.app.Activity;
    import android.content.ContentValues;
    import android.content.Context;
    import android.database.SQLException;
    import android.database.sqlite.SQLiteDatabase;
    import android.database.sqlite.SQLiteDatabase.CursorFactory;
    import android.database.sqlite.SQLiteOpenHelper;
    import android.database.sqlite.SQLiteQueryBuilder;
    import android.util.Log;
     
    public class BaseSQLite extends SQLiteOpenHelper {
     
    	public BaseSQLite(Context context, String name, CursorFactory factory,
    			int version) {
    		super(context, name, factory, version);
    		// TODO Auto-generated constructor stub
    	}
     
    	private static final String TABLE_SALLE = "table_salle";
    	private static final String COL_ID = "ID";
    	private static final String COL_IP= "Ip";
    	private static final String COL_NOM = "Nom";
     
    	private static final String CREATE_BDD = "CREATE TABLE " + TABLE_SALLE + " ("
    	+ COL_ID + " INTEGER PRIMARY KEY AUTOINCREMENT, " + COL_IP + " TEXT NOT NULL, "
    	+ COL_NOM + " TEXT NOT NULL);";
     
     
    	@Override
    	public void onCreate(SQLiteDatabase db) {
    		//on créé la table à partir de la requête écrite dans la variable CREATE_BDD
    		db.execSQL(CREATE_BDD);
    	}
     
    	@Override
    	public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    		//On peut fait ce qu'on veut ici moi j'ai décidé de supprimer la table et de la recréer
    		//comme ça lorsque je change la version les id repartent de 0
    		db.execSQL("DROP TABLE " + TABLE_SALLE + ";");
    		onCreate(db);
    	}
     
    }

    Je n'ai qu'un super...

  8. #8
    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
    D'accord, donc reste l'autre piste : quel est le code te permettant de l'utiliser (surtout la construction) ?
    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

  9. #9
    Membre régulier
    Homme Profil pro
    Etudiant Informatique
    Inscrit en
    Janvier 2014
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant Informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2014
    Messages : 9
    Par défaut
    Et voilà mon code pour tester :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
     
    public class TestBDD extends Activity {
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_test_bdd);
     
            //Création d'une instance de ma classe SalleBDD
            SalleBDD salleBDD = new SalleBDD(this);
     
            //Création d'une salle
            Salle salle = new Salle("123456789", "Programmez pour Android");
     
            //On ouvre la base de données pour écrire dedans
            salleBDD.open();
            //On insère la salle que l'on vient de créer
            salleBDD.insertSalle(salle);
     
            //Pour vérifier que l'on a bien créé notre salle dans la BDD
            //on extrait la salle de la BDD grâce au nom de la salle que l'on a créé précédemment
          Salle salleFromBdd = salleBDD.getSalleWithNom(salle.getNom());
            //Si une salle est retournée (donc si la salle à bien été ajouté à la BDD)
            if(salleFromBdd != null){
            	//On affiche les infos de la salle dans un Toast
            	Toast.makeText(this, salleFromBdd.toString(), Toast.LENGTH_LONG).show();
            	//On modifie le nom de la salle
            	salleFromBdd.setNom("Modifie le nom de la salle");
            	//Puis on met à jour la BDD
                salleBDD.updateSalle(salleFromBdd.getId(), salleFromBdd);
            }
     
            //On extrait la salle de la BDD grâce au nouveau nom
            salleFromBdd = salleBDD.getSalleWithNom("Modifie le nom de la salle");
            //S'il existe une salle possédant ce nom dans la BDD
            if(salleFromBdd != null){
    	        //On affiche les nouvelle info de la salle pour vérifié que le nom a bien été mis à jour
    	        Toast.makeText(this, salleFromBdd.toString(), Toast.LENGTH_LONG).show();
    	        //on supprime la salle de la BDD grâce à son ID
    	    	salleBDD.removeSalleWithID(salleFromBdd.getId());
            }
     
            //On essait d'extraire de nouveau la salle de la BDD toujours grâce à son nouveau nom
            salleFromBdd = salleBDD.getSalleWithNom("Modifie le nom de la salle");
            //Si aucune salle n'est retourné
            if(salleFromBdd == null){
            	//On affiche un message indiquant que la salle n'existe pas dans la BDD
            	Toast.makeText(this, "Cette salle n'existe pas dans la BDD", Toast.LENGTH_LONG).show();
            }
            //Si la salle existe (mais normalement il ne devrait pas)
            else{
            	//on affiche un message indiquant que la salle existe dans la BDD
            	Toast.makeText(this, "Cette salle existe dans la BDD", Toast.LENGTH_LONG).show();
            }
     
            salleBDD.close();
        }
    }

Discussions similaires

  1. Probléme avec Eclipse 3.2
    Par Moez.B dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 27/08/2006, 15h36
  2. Probléme avec Eclipse 3.1.1
    Par Moez.B dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 26/08/2006, 16h59
  3. problème avec eclipse
    Par ben_iap dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 20/12/2005, 15h09
  4. [Novice] Problème avec Eclipse 3.0.x qui plante
    Par esolarc dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 27/05/2005, 13h22
  5. Problème avec eclipse, tomcat et lomboz
    Par sheura dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 29/09/2004, 18h03

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