3
respostas

A Agenda parou

Classe AluoDao:
public class AlunoDAO extends SQLiteOpenHelper{
    public AlunoDAO(Context context) {
        super(context, "Agenda", null,1);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        String sql = "CREATE TABLE  Alunos (Id INTEGER PRIMARY KEY,Nome TEXT NOT NULL,endereco TEXT,telefone TEXT,site TEXT,nota REAL);";
        db.execSQL(sql);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        String sql = "DROP TABLE Alunos";
        db.execSQL(sql);
        onCreate(db);
    }

    public void insere(Aluno aluno){
       SQLiteDatabase db = getWritableDatabase();
        ContentValues dados = new ContentValues();
        dados.put("nome",aluno.getNome());
        dados.put("endereco",aluno.getEndereco());
        dados.put("telefone",aluno.getTelefone());
        dados.put("site",aluno.getSite());
        dados.put("nota",aluno.getNota());

        db.insert("Alunos",null,dados);
    }

    public List<Aluno> buscaAlunos() {
        String sql = "select * from Alunos ;";
        SQLiteDatabase db = getReadableDatabase();
        Cursor c = db.rawQuery(sql,null);
        List<Aluno> alunos = new ArrayList<Aluno>();
        while (c.moveToNext()) {

                Aluno aluno = new Aluno();

                aluno.setId(c.getLong(c.getColumnIndex("id")));
                aluno.setNome(c.getString(c.getColumnIndex("nome")));
                aluno.setEndereco(c.getString(c.getColumnIndex("endereco")));
                aluno.setTelefone(c.getString(c.getColumnIndex("telefone")));
                aluno.setSite(c.getString(c.getColumnIndex("site")));
                aluno.setNota(c.getDouble(c.getColumnIndex("nota")));

                alunos.add(aluno);

        }
        c.close();
        return alunos;
    }


}
3 respostas

Oi Emerson, tudo bem ?

Cara não consegui identificar nenhum erro. Se você puder disponibilizar o erro que é exibido no logcat, iremos te ajudar melhor !

E aí Matheus , tudo bem? A mensagem de erro seria o aplicativo parou , isso ocorreu ao tentar carregar aplicação no emulador. Conforme solicitado segue abaixo o conteúdo do logCat. Caso ache necessário posso enviar o meu projeto. obs: sinto a necessidade de ter um artigo que mostre de forma mais detalhada o processo de debug no Android Studio.

08-10 01:00:25.482 3451-3451/? I/art: Not late-enabling -Xcheck:jni (already on)
08-10 01:00:25.627 3451-3451/cambui.com.br.agenda W/System: ClassLoader referenced unknown path: /data/app/cambui.com.br.agenda-1/lib/x86
08-10 01:00:25.632 3451-3451/cambui.com.br.agenda I/InstantRun: Instant Run Runtime started. Android package is cambui.com.br.agenda, real application class is null.
08-10 01:00:25.980 3451-3451/cambui.com.br.agenda W/System: ClassLoader referenced unknown path: /data/app/cambui.com.br.agenda-1/lib/x86
08-10 01:00:26.246 3451-3451/cambui.com.br.agenda W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable
08-10 01:00:26.530 3451-3451/cambui.com.br.agenda D/AndroidRuntime: Shutting down VM
08-10 01:00:26.531 3451-3451/cambui.com.br.agenda E/AndroidRuntime: FATAL EXCEPTION: main
                                                                    Process: cambui.com.br.agenda, PID: 3451
                                                                    java.lang.RuntimeException: Unable to start activity ComponentInfo{cambui.com.br.agenda/cambui.com.br.agenda.ListaAlunosActivity}: android.database.sqlite.SQLiteException: Can't downgrade database from version 2 to 1
                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416)
                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)
                                                                        at android.app.ActivityThread.-wrap11(ActivityThread.java)
                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
                                                                        at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                        at android.os.Looper.loop(Looper.java:148)
                                                                        at android.app.ActivityThread.main(ActivityThread.java:5417)
                                                                        at java.lang.reflect.Method.invoke(Native Method)
                                                                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)
                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
                                                                     Caused by: android.database.sqlite.SQLiteException: Can't downgrade database from version 2 to 1
                                                                        at android.database.sqlite.SQLiteOpenHelper.onDowngrade(SQLiteOpenHelper.java:360)
                                                                        at android.database.sqlite.SQLiteOpenHelper.getDatabaseLocked(SQLiteOpenHelper.java:254)
                                                                        at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:187)
                                                                        at cambui.com.br.agenda.dao.AlunoDAO.buscaAlunos(AlunoDAO.java:50)
                                                                        at cambui.com.br.agenda.ListaAlunosActivity.onCreate(ListaAlunosActivity.java:24)
                                                                        at android.app.Activity.performCreate(Activity.java:6237)
                                                                        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107)
                                                                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369)
                                                                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                                                                        at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                                                                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                                                                        at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                        at android.os.Looper.loop(Looper.java:148) 
                                                                        at android.app.ActivityThread.main(ActivityThread.java:5417) 
                                                                        at java.lang.reflect.Method.invoke(Native Method) 
                                                                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                                                                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)

Emerson tudo bem ?

As exceptions do android são bem descritivas :

java.lang.RuntimeException: Unable to start activity ComponentInfo{cambui.com.br.agenda/cambui.com.br.agenda.ListaAlunosActivity}: android.database.sqlite.SQLiteException: Can't downgrade database from version 2 to 1

Olha o que ele tá falando.

No seu emulador a versão era 2 e você tá tentando colocar a versão 1 e ele não sabe o que fazer, ele se perde e ai gera o erro.