2016-02-18 1 views
0

Я пишу приложение, и я хочу что-то сохранить в базе данных 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(); 

Что я могу сделать, чтобы решить эту проблему?

+0

Вы установили ' ' –

+0

Ваша БД находится в' Hesabdari \ app \ build \ intermediates \ assets \ databases \ hesabdari.sqlite'. Скопируйте его в '/ data/data/com.example.monire.hesabdari/databases', затем используйте его. – Rohit5k2

ответ

0

Вы не используете правильный путь. Чтобы получить доступ к папке базы данных устройства, нажмите «Инструменты» -> Android -> монитор Android-устройств. Затем нажмите на свое устройство, перейдите на вкладку «Проводник», а затем данные -> данные -> база данных your.application.name ->

Смежные вопросы