我无法在android studio

时间:2016-02-18 12:46:45

标签: android sqlite

我正在编写一个应用程序,我想在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();

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:0)

你没有使用正确的道路。要访问您的设备数据库文件夹,请单击工具 - > Android - > Android设备监视器。然后单击您的设备,选择文件资源管理器选项卡,然后选择数据 - >数据 - > your.application.name - >数据库