, когда я использую действие, которое использует мою базу данных, и добавляю информацию о продукте в базу данных, мое приложение падает
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
И я уже реализовал необходимые библиотеки ...
моя активность в базе данных
public class Database extends SQLiteAssetHelper {
private static final String DB_NAME = "app.db" ;
private static final int DB_VER = 1 ;
public Database(Context context) {
super(context, DB_NAME, null, DB_VER);
}
public List<Order> getCarts() {
SQLiteDatabase db = getReadableDatabase();
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
String[] sqlSelect = {"ProductName", "ProductId", "Quantity", "Price", "Discount"};
String sqlTable = "OrderDetail";
qb.setTables(sqlTable);
Cursor cursor = qb.query(db, sqlSelect, null, null, null, null, null);
final List<Order> result = new ArrayList<>();
if (cursor.moveToFirst()) {
//13:30
do {
result.add(new Order(cursor.getString(cursor.getColumnIndex("ProductId")),
cursor.getString(cursor.getColumnIndex("ProductName")),
cursor.getString(cursor.getColumnIndex("Quantity")),
cursor.getString(cursor.getColumnIndex("Price")),
cursor.getString(cursor.getColumnIndex("Discount"))
));
}while(cursor.moveToNext());
}
return result;
}
public void addToCart (Order order){
SQLiteDatabase db=getReadableDatabase(); //here is the crash line
String query = String.format("INSERT INTO OrderDetail(ProductId,Quantity,ProductName,Price,Discount) VALUES ('%s','%s','%s','%s','%s');",
order.getProductId(),
order.getProductName(),
order.getDiscount(),
order.getPrice(),
order.getQuantity());
db.execSQL(query);
}
public void cleanCart()
{
SQLiteDatabase db=getReadableDatabase();
String query = String.format("DELETE FROM OrderDetail");
db.execSQL(query);
}
}
LogCat:
Process: com.OverRout.KFood, PID: 2637
android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method)
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:209)
at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193)
at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463)
at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185)
at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177)
at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:808)
at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:793)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:696)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:671)
at com.readystatesoftware.sqliteasset.SQLiteAssetHelper.getReadableDatabase(SQLiteAssetHelper.java:264)
at com.OverRout.KFood.Database.Database.addToCart(Database.java:45)
at com.OverRout.KFood.food_detail$1.onClick(food_detail.java:47)
at android.view.View.performClick(View.java:5637)
at android.view.View$PerformClick.run(View.java:22429)
at android.os.Handler.handleCallback(Handler.java:751)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:154)
at android.app.ActivityThread.main(ActivityThread.java:6119)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776)