Sqlite base de datos no creada
Estoy utilizando el enfoque estándar que he aprendido del ejemplo popular bloc de notas para la construcción de mi primera aplicación.
Pero me quedé atrapado en un extraño problema.
El archivo de base de datos SQLite (.db) no se está creando en / data / data / package / databases. He comprobado el archivo del manifiesto y el archivo de OpenHelper de HeadFirst android dev. Libro (lo estoy utilizando como una referencia) pero me encontré incapaz de averiguar por qué el archivo de base de datos no se crea ..
¿Hay algún permiso especial o algo que necesitamos para encenderlo para que funcione?
Lo extraño es que su trabajo bien para los ejemplos precargados. Significa que el archivo ".db" se crea para el ejemplo del bloc de notas, pero cuando lo intento, falla. 🙁
Aquí están mis archivos.
Paquete – database.test
- InsertWithOnConflict () vs. Insertar o reemplazar
- ¿Cuál es el límite de variables SQL que se pueden especificar en una sola consulta execSQL
- SQLiteReadOnlyDatabaseException: intento de escribir una base de datos readonly (código 1032)
- Base de datos SQLite para aplicaciones de Android con múltiples usuarios potenciales
- Obtener cadena, fecha, hora y int de sqlite base de datos en android
1. AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<uses-sdk android:minSdkVersion="10" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".Database_testActivity" android:label="@string/app_name" > </activity> </application>
2.TestOpenHelper.java
package database.test; import android.content.Context; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; public class TestOpenHelper extends SQLiteOpenHelper { TestOpenHelper(Context context){ super(context,"mydb.db",null,1); } @Override public void onCreate(SQLiteDatabase database){ database.execSQL("create table test_1 " + " (field1 integer primary key, field2 integer);"); } public void onUpgrade (SQLiteDatabase database, int oldVersion, int newVersion){ database.execSQL("drop table if exists test1"); onCreate(database); } }
3.Database_testActivity.java
package database.test; import android.app.Activity; import android.os.Bundle; import android.widget.ListView; public class Database_testActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ListView listview = (ListView)findViewById(R.id.test_list); TestAdapter ta = new TestAdapter(); listview.setAdapter(ta); TestOpenHelper openHelper = new TestOpenHelper(this); } }
Sé que es una pregunta muy básica, pero he estado tratando de resolver esto durante los últimos quince días y ahora estoy completamente frustrado.
Por favor ayuda ..
- ¿Cómo realizar una consulta SQLite dentro de una aplicación de Android?
- Android y SQLite - recupera el número máximo de una tabla
- Carácter turco en SQLite mientras utiliza la expresión LIKE
- Resolución de conflictos en la base de datos SQLite de Android
- ¿Puede un proyecto de biblioteca de Android tener su propia base de datos SQLite?
- Cómo realizar operaciones de base de datos mediante Async Task
- GreenDAO no genera restricción FOREIGN KEY (...) en la tabla
- ¿Qué es la base de datos "-journal" SQLite en Android?
Cambia esto:
database.execSQL("create table test_1 " + " (field1 integer primary key, field2 integer)");
Y este TestOpenHelper openHelper = new TestOpenHelper(this);
Cambie a SQLiteDatabase db = new TestOpenHelper(this).getWritableDatabase();
Realmente no creó la base de datos, sólo crear instancia de su SQLiteOpenHelper
pero para crear o abrir la base de datos que tiene que utilizar el getWritableDatabase()
o getReadableDatabase()
.
Exactamente de docs:
Crear y / o abrir una base de datos que se utilizará para leer y escribir.
- ¿Cómo se puede restringir la orientación de la pantalla horizontal en android?
- Cómo crear barra de progreso como la imagen en Android