No such table

Bom galera, estou com uma aplicacao que criei o banco de dados no SQLite e joguei dentro da pasta database da aplicacao em File explorer, e ao executar a aplicacao retorna esse erro

No such table carro
...
Unable to start activity ComponentInfo

O nome da tabela esta correto, nao aparenta ter algo errado,passo esse comando para acessar o BD

protected SQLiteDatabase db;
	
	public RepositorioCarro(Context ctx){
	// Abre o banco de dados ja existente
		db = ctx.openOrCreateDatabase(NOME_BANCO, Context.MODE_PRIVATE, null);
	}

e olhando os logs ele aponta para essa linha do codigo

public List<Carro> listarCarros(){
		Cursor c =  getCursor();
		List<Carro> carros = new ArrayList<Carro>();
		if(c.moveToFirst()){ <--------------------------------- Bem aqui no if
			// Recupera os indices das colunas
			int idxId = c.getColumnIndex(Carros._ID);
			int idxNome = c.getColumnIndex(Carros.NOME);
			int idxPlaca = c.getColumnIndex(Carros.PLACA);
			int idXAno = c.getColumnIndex(Carros.ANO);
			// Loop ate o final
			do {
				Carro carro = new Carro();
				carros.add(carro);
				// Recupera os atributos de carro
				carro.id = c.getLong(idxId);
				carro.nome = c.getString(idxNome);
				carro.placa = c.getString(idxPlaca);
				carro.ano = c.getInt(idXAno);
			}while(c.moveToNext());
		}
		return carros;
	}

Dei uma olhada pela internet sobre erro nao achei nada que pudesse solucionar o erro, muito falam para criar o BD dentro da app… Alguém saberia o que pode ser?
Abraço

Pela mensagem, não existe a tabela “carro” no db.
Mas o erro deveria ter dado na query.

Sim o erro indica isso, mas ela existe e o nome está correto, e o BD dentro da pasta databases certinho. Eu notei que se tento executar a aplicação no emulador com o SQLite aberto ele dá o erro da forma como postei, caso o SQLite esteja fechado não aparece o tal such table apenas o “Unable to start activity conponentInfo”… É normal isso? O que pode ser?

Testa com o Sqlite fechado e posta o LogCat do erro, por favor.

Mesmo com o sqlite fechado ele deu na primeira linha do LogCat o “such table” segue o erro

Erro ao buscar os carros: android.database.sqlite.SQLException no such table : carro: while compiling SELECT _id,nome,plcaca ,ano FROM carro

Esse Log é mandado escrever nessa parte do codigo

// Retorna um cursor com todos os carros
	public Cursor getCursor(){
		try{
			// select * from carros
			return db.query(NOME_TABELA, Carro.colunas, null, null, null, null, null, null);
		}catch(SQLException e){
			Log.e(CATEGORIA,"Erro ao buscar os carros: "+e.toString());
			return null;
		}
	}

Depois desse log vem a parte do Unable to start activity … NullPointerException
Que aponta na linha mencionada no outro post.

Verifica o db da aplicação, deve ter alguma coisa errada. Checa as tabelas existentes.

Só existe uma tabela e o nome da tabela está correto “carro”.

A primeira coisa que devemos fazer como programadores é não brigar com os fatos: se está dando a mensagem no such table, é que não existe a tal tabela, pode ser erro de digitação, nome errado, plural, singular, diretório errado, etc. Mas, tem uma inconsistência aí! Procura.

Concordo plenamente com o que diz, o mais provável seria um erro de diretório então, coloquei o banco em file explorer > data > data > (nome da aplicacao) > databases

Está correto?

Com o emulador aberto, em linha de comando:
adb -s emulator-5554 shell
sqlite3 /data/data/seu package/databases/seudb
select * from carro;

[quote=A H Gusukuma]Com o emulador aberto, em linha de comando:
adb -s emulator-5554 shell
sqlite3 /data/data/seu package/databases/seudb
select * from carro;
[/quote]

Até a parte do comando sqlite3 /data/data/seu package/databases/seudb foi sem problemas, ao inserir o select ele gerou o erro unable to open database file, ou seja não encontrou a tabela!!!

Avança o livro e usa a criação do db pelo SQLiteOpenHelper

Era o que estava pensando em fazer já que não funcionou, até cheguei a criar outras tabelas para usar, mas obtive o mesmo erro. Farei isso então. Muito obrigado por se dispor a ajudar!