我正在编写一个应用程序,我想在sqlite数据库中保存一些东西。
我的项目名称是Hesabdari
。
我复制我的数据库:
Hesabdari\app\build\intermediates\assets\databases\hesabdari.sqlite.
我有一个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();
}}
我的收入课程如下所示:
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();
}
};
在我的计划中,当我点击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();
我该怎么做才能解决这个问题?
答案 0 :(得分:0)
你没有使用正确的道路。要访问您的设备数据库文件夹,请单击工具 - > Android - > Android设备监视器。然后单击您的设备,选择文件资源管理器选项卡,然后选择数据 - >数据 - > your.application.name - >数据库