2017-09-16 2 views
2

J'essaie de créer une application très simple avec trois champs et les données doivent être sauvegardées dans la base de données SQLite. Quand je lance l'applicationBase de données SQLite non créée

  1. Je reçois le message d'erreur "Error running app: Instant Run requires "Tools..Android..Enable ADB integration" to be enabled .. Je l'ai fait l'intégration de la BAD dans le menu, mais chaque fois que je lance l'application, cette erreur est affichée. Dois-je sélectionner cette option toujours manuellement?

  2. Lorsque j'appuie sur le bouton de l'application pour enregistrer les données, l'application cesse de fonctionner. J'ai essayé de vérifier la base de données sur le moniteur de périphérique Android mais le dossier de données n'est pas créé. J'ai trouvé un peu d'aide connexe sur ce forum et je l'ai fait la configuration proposée (voir ci-dessous):

adb shell su chmod 777 /data/data/com.example.application.sqliteappl démarrer le cmd nouveau .. adb root adb root -restart

(mon nom de package est: com.example.application.sqliteappl).

Je suppose que mon application cesse de fonctionner car elle n'est pas capable de créer la base de données SQLite. Toute personne ayant une idée de comment je pourrais résoudre ce problème?

Le code dans mon application est assez simple, je ne pense pas qu'il y ait aucun problème:

public class DatabaseHelper extends SQLiteOpenHelper { 
    private static final String TAG = "MyMessage"; 
public static final String DATABASE_NAME = "Student.db"; 
    public static final String TABLE_NAME = "Student_table"; 
    public static final String COL_1 = "ID"; 
    public static final String COL_2 = "Name"; 
    public static final String COL_3 = "SURNAME"; 
    public static final String COL_4 = "MARKS"; 
    public DatabaseHelper(Context context) { 
     super(context, DATABASE_NAME, null, 1); 
//  SQLiteDatabase db = this.getWritableDatabase(); 
    } 
    @Override 
    public void onCreate(SQLiteDatabase db) { 
db.execSQL("create table " + TABLE_NAME +" (ID INTEGER PRIMARY KEY AUTOINCREMENT, NAME TEXT, SURNAME TEXT, MARKS INTEGER)"); 
    } 
    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 

     db.execSQL("DROP TABKE IF EXITS "+TABLE_NAME); 
     onCreate(db); 
Log.i(TAG, "onUpgrade()"); 
    } 

    public boolean insertData(String name, String surname, String marks){ 
     Log.i(TAG, "insertData()"); 
     SQLiteDatabase db = this.getWritableDatabase(); 
     ContentValues contevalues = new ContentValues(); 

     contevalues.put(COL_2, name); 
     contevalues.put(COL_3, surname); 
     contevalues.put(COL_4, marks); 
     long result = db.insert(TABLE_NAME, null, contevalues); 
if (result == -1) 
    return false; 
     else 
      return true; 
    } 
} 

Merci à tous ceux qui cherchent à elle.

Cordialement,

Tarik

+0

avez-vous essayé de désactiver l'exécution instantanée – Arshad

+0

Essayez de Invalider cache et redémarrer Android studio – UltimateDevil

+0

avez-vous entré 'Lire et écrire dans permission'' manifest' –

Répondre

0

Après résolution erreur d'exécution instantané s'il vous plaît se référer et essayer de mettre en œuvre comme this, j'espère que cela vous aidera.

+0

quoi exactement devrait aider de cette façon? quand je vérifie mon code (énuméré ci-dessus), il ne montre aucun problème avec la syntaxe .. Tout autre indice? – Tariq