Я пишу приложение, и я хочу что-то сохранить в базе данных sqlite. Название моего проекта: Hesabdari
. я копирую свою базу данных в: Hesabdari\app\build\intermediates\assets\databases\hesabdari.sqlite.
Я не могу сохранить свои данные в sqlite в студии android
У меня есть класс MyDatabase:
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;
import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;
public class MyDatabase extends SQLiteAssetHelper {
private static final String DATABASE_NAME = "hesabdari.sqlite";
private static final int DATABASE_VERSION = 1;
public MyDatabase(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
setForcedUpgrade();
}}
Я Earning класс, как показано ниже:
public class Earning extends AppCompatActivity {
OnClickListener listenPlease = new OnClickListener() {
public void onClick(View v) {
Intent newIntent = new Intent(Earning.this , EarningForm.class);
startActivity(newIntent);
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_earning);
Button record_btn = (Button) findViewById(R.id.btnRecord);
record_btn.setOnClickListener(listenPlease);
}}
У меня есть EarningForm класс, как показано ниже:
public class EarningForm extends AppCompatActivity {
private MyDatabase MyDatabase;
SQLiteDatabase mydb;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_earning_form);
Button save=(Button) findViewById(R.id.btnTaeed);
save.setOnClickListener(listentodb);
MyDatabase = new MyDatabase(this);
mydb = MyDatabase.getWritableDatabase();
}
View.OnClickListener listentodb = new View.OnClickListener() {
public void onClick(View v) {
ContentValues values = new ContentValues();
values.put("mablagh", R.id.txtMablagh);
values.put("daste", R.id.btnDaste);
values.put("hasab", R.id.spinner1);
values.put("tarikh", R.id.etxTarikh);
values.put("tozih", R.id.etxTozihat);
// mydb.insert("daramad", null, values);
// mydb.close();
}
};
В моем pr ogram, когда я нажимаю на btnRecord
я получил ошибку ниже:
"java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.monire.hesabdari/com.example.monire.hesabdari.EarningForm}: com.readystatesoftware.sqliteasset.SQLiteAssetHelper$SQLiteAssetException: Missing databases/hesabdari.sqlite file (or .zip, .gz archive) in assets, or target folder not writable"
Я понимаю, что эта ошибка из-за следующую строку:
mydb = MyDatabase.getWritableDatabase();
Что я могу сделать, чтобы решить эту проблему?
Вы установили ' ' –
Ваша БД находится в' Hesabdari \ app \ build \ intermediates \ assets \ databases \ hesabdari.sqlite'. Скопируйте его в '/ data/data/com.example.monire.hesabdari/databases', затем используйте его. – Rohit5k2