Minha aplicação executa mas não funciona como o codigo está escrito, a unica coisa que aparece é:
E/Surface: getSlotFromBufferLocked: unknown buffer:
Alguém sabe o que pode estar acontecendo?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Minha aplicação executa mas não funciona como o codigo está escrito, a unica coisa que aparece é:
E/Surface: getSlotFromBufferLocked: unknown buffer:
Alguém sabe o que pode estar acontecendo?
Oi Guilherme, tudo bem ?
Cara, se a aplicação está rodando, é porque está tudo certo, isto é apenas um aviso, um log, do sistema operacional.
Posta o código da sua Activity e do seu Dao, para vermos o que está acontecendo, por gentileza.
Abraços
Código do DAO:
package com.example.gsav.agenda.dao;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import com.example.gsav.agenda.modelo.Aluno;
import java.util.ArrayList;
import java.util.List;
/**
* Created by GSAV on 30/08/2016.
*/
public class AlunoDAO extends SQLiteOpenHelper {
public AlunoDAO(Context context) {
super(context,"Agenda",null,1);
}
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE Aluno (id INTEGER PRIMARY KEY, nome TEXT NOT NULL, endereço TEXT, telefone TEXT, site TEXT, nota REAL);";
db.execSQL(sql);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
String sql = "DROP TABLE IF EXISTS 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;
}
}
Código da Activity:
package com.example.gsav.agenda;
import android.content.Intent;
import android.net.Uri;
import android.support.annotation.IdRes;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import com.example.gsav.agenda.dao.AlunoDAO;
import com.example.gsav.agenda.modelo.Aluno;
import java.util.List;
public class ListaAlunosActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_lista_alunos);
AlunoDAO dao = new AlunoDAO(this);
List<Aluno> alunos = dao.buscaAlunos();
dao.close();
ListView listaAlunos = (ListView) findViewById(R.id.lista_alunos);
ArrayAdapter<Aluno> adapter = new ArrayAdapter<Aluno>(this, android.R.layout.simple_list_item_1, alunos);
listaAlunos.setAdapter(adapter);
Button novoAluno= (Button) findViewById(R.id.novo_aluno);
novoAluno.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intentVaiProFormulario = new Intent(ListaAlunosActivity.this,FormularioActivity.class);
startActivity(intentVaiProFormulario);
}
});
}
}
Tive um outro problema, pois eu desinstalei a aplicação do meu celular e na hora de executar novamente, ela não abre mais e aparece outro erro kkkkkkkkkkk...
Olá Guilherme,
Nesta parte do código:
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE Aluno (id INTEGER PRIMARY KEY, nome TEXT NOT NULL, endereço TEXT, telefone TEXT, site TEXT, nota REAL);";
db.execSQL(sql);
}
Perceba que o nome da coluna endereço está escrito com cedilha. No restante do seu código você está referenciando esta coluna por endereco sem cedilha. O ideal é que você não utilize acentos nem caracteres especiais no nome das suas colunas então seria melhor você mudar o nome da coluna no onCreate. Lembre-se de reinstalar a aplicação para testar pois o banco já foi criado e já está com o nome incorreto da coluna.
Oi Guilherme,
O que Jeferson falou é bem importante.
Outra coisa que pode analisar, que acredito que seja o problema é o seguinte :
Olha o nome da tabela que você cria no método onCreate :
@Override
public void onCreate(SQLiteDatabase db) {
String sql = "CREATE TABLE Aluno (id INTEGER PRIMARY KEY, nome TEXT NOT NULL, endereço TEXT, telefone TEXT, site TEXT, nota REAL);";
db.execSQL(sql);
}
Agora repara o nome da tabela que você está chamando nos demais métodos, por exemplo na inserção :
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);
}
E assim está em todos os demais métodos, provavelmente você sequer está persistindo os dados, por isso não consegue os recuperar, devido a tabela que você tem ido buscar ou inserir não existe.
Corrigue isso, remove a aplicação e a instala novamente.
Roda e fala para gente o que aconteceu por gentileza !
Abraços :D
Fiz as correções, desinstalei, só que não estou conseguindo instalar a app novamente. Eu estou utilizando o meu celular ao invés de utilizar o emulador.
08/30 17:25:23: Launching ListaAlunosActivity
No local changes, not deploying APK
$ adb shell am start -n "com.example.gsav.agenda/com.example.gsav.agenda.ListaAlunosActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Error while executing: am start -n "com.example.gsav.agenda/com.example.gsav.agenda.ListaAlunosActivity" -a android.intent.action.MAIN -c android.intent.category.LAUNCHER
Starting: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp=com.example.gsav.agenda/.ListaAlunosActivity }
Error type 3
Error: Activity class {com.example.gsav.agenda/com.example.gsav.agenda.ListaAlunosActivity} does not exist.
Error while Launching activity
Aparece esse erro.
Já consegui! Tive que dar Clear Project e depois um Rebuilt Project, ai ele funcionou.
Banaca !!