मेरे पास assets
फ़ोल्डर में एक .db फ़ाइल है। मैंने इसे एम्यूलेटर में data/data/<packagename>/databases/
फ़ोल्डर में कॉपी किया है और इसके कामकाजी जुर्माना ..डाटाबेस को संपत्ति फ़ोल्डर से डिवाइस पर कॉपी नहीं किया जा रहा है
लेकिन जब मैं इसे डिवाइस पर चलाता हूं तो यह बल बंद हो जाता है। यह
SQLite exception: no such table: tbl_user
यहाँ मेरी कोड है दिखाया जा रहा है ..
public class DatabaseHelper extends SQLiteOpenHelper {
public DatabaseHelper() {
super(dataContext, DATABASE_NAME, null, 1);
DB_PATH = "/data/data/"
+ dataContext.getApplicationContext().getPackageName()
+ "/databases/";
Log.d("PATH", DB_PATH);
boolean dbExist = checkDataBase();
if (!dbExist) {
this.getReadableDatabase();
try {
copyDataBase();
} catch (IOException e) {
Log.d("Error", e.toString());
}
}
}
private void copyDataBase() throws IOException {
// TODO Auto-generated method stub
InputStream inFile = dataContext.getAssets().open(DATABASE_NAME);
String outFileName = DB_PATH + DATABASE_NAME;
OutputStream myOutput = new FileOutputStream(outFileName);
byte[] buffer = new byte[1024];
int length;
while ((length = inFile.read(buffer)) > 0) {
myOutput.write(buffer, 0, length);
}
// Close the streams
myOutput.flush();
myOutput.close();
inFile.close();
}
private boolean checkDataBase() {
// TODO Auto-generated method stub
File dbFile = new File(DB_PATH + DATABASE_NAME);
return dbFile.exists();
}
मैं कॉपी करने के लिए कुछ और करना है चाहिए कि डिवाइस के लिए डाटाबेस ???
धन्यवाद ..
मैं वास्तव में 'SQLiteAssetHelper' का उपयोग करने की अनुशंसा करता हूं, क्योंकि इसमें पूरी प्रक्रिया डीबग हुई है, अपने आप को रोल करने के बजाए: https://github.com/jgilfelt/android-sqlite-asset-helper – CommonsWare
कृपया इस लिंक को देखें http://www.reigndesign.com/blog/using-your-own-sqlite-डेटा- इन-android-अनुप्रयोगों / –