मैं एंड्रॉइड एप्लिकेशन में अपने SQLiteOpenHelper
सबक्लास के लिए सम्मिलन और पुनर्प्राप्ति विधियों का परीक्षण करने की कोशिश कर रहा हूं। SQLLiteHelper सबक्लास परीक्षण के तहत ऐप में मौजूद है, और स्थापना फ़ोल्डर में डेटाबेस बनाता है। हालांकि, परीक्षण ऐप में यूनिट परीक्षण InstrumentTestCase
में मौजूद है, और मैं परीक्षण ऐप में एक परीक्षण डेटाबेस बनाना चाहता हूं।एंड्रॉइड टेस्ट ऐप में डेटाबेस नहीं खोल सकता
android.database.sqlite.SQLiteException: unable to open database file
at android.database.sqlite.SQLiteDatabase.dbopen(Native Method)
at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1584)
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:638)
at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:168)
at com.kizoom.android.mybus.storage.MyStopsDatabase.getMyStops(MyStopsDatabase.java:63)
at com.kizoom.mybus.test.MyStopsDatabaseTest.testGetMyStops(MyStopsDatabaseTest.java:24)
at java.lang.reflect.Method.invokeNative(Native Method)
at android.test.InstrumentationTestCase.runMethod(InstrumentationTestCase.java:191)
at android.test.InstrumentationTestCase.runTest(InstrumentationTestCase.java:181)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:164)
at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:151)
at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:425)
at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1520)
The following information appears in LogCat.
02-21 11:52:16.204: ERROR/Database(1454): sqlite3_open_v2("/data/data/com.kizoom.mybus.test/databases/MyStops", &handle, 6, NULL) failed
02-21 11:52:16.204: ERROR/SQLiteOpenHelper(1454): Couldn't open MyStops for writing (will try read-only):
02-21 11:52:16.204: ERROR/SQLiteOpenHelper(1454): android.database.sqlite.SQLiteException: unable to open database file
02-21 11:52:16.204: ERROR/SQLiteOpenHelper(1454): at android.database.sqlite.SQLiteDatabase.dbopen(Native Method)
02-21 11:52:16.204: ERROR/SQLiteOpenHelper(1454): at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1584)
02-21 11:52:16.204: ERROR/SQLiteOpenHelper(1454): at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:638)
किसी को पता है क्यों यह विफल हो जाएगा:
दुर्भाग्य से, अगर मैं बनाने/परीक्षण अनुप्रयोग में एक डेटाबेस को खोलने का प्रयास, मैं निम्नलिखित अपवाद मिल सकता है?
त्रुटि से पता चलता है कि आप अपना डेटाबेस नहीं बना रहे हैं - या संभवतः, आप इसे 'SQLiteOpenHelper.onCreate() 'के बाहर बना रहे हैं (क्योंकि इसे खोला नहीं जा सकता है) और इसलिए जब आप अन्य' SQLiteOpenHelper' सुविधा विधियों का उपयोग करते हैं, तो वे आपके डेटाबेस से अनजान हैं। कृपया अपना कोड पोस्ट करें जहां आप डेटाबेस बनाते हैं, और अपने उप-वर्गीकृत 'SQLiteOpenHelper' के लिए' onCreate'। – RivieraKid
सही उत्तर यह है: http://stackoverflow.com/a/8488722/1432640 – stillwaiting