2016-03-26 9 views
5

क्रैश करता है मैं SQLite के साथ काम करने के लिए इस कोड का उपयोग करता हूं।एंड्रॉइड 6.0 के अपडेट के बाद, SQLite डेटाबेस

इससे पहले कि मैं एंड्रॉइड 6.0 पर अपडेट करता हूं, यह पूरी तरह से काम करता है, लेकिन अब यह दुर्घटनाग्रस्त हो जाता है।

MyParam कक्षा में

public static SQLiteDatabase dbMyCount; 
public static String DB_Path_MyCount = "/sdcard/GMS/MyCount.db"; 
MainActivity

पर

MyParam.dbMyCount = this.openOrCreateDatabase(MyParam.DB_Path_MyCount, MODE_WORLD_WRITEABLE, null); 
SQL = "CREATE TABLE IF NOT EXISTS MyCount(_id INTEGER PRIMARY KEY AUTOINCREMENT,Tdate VARCHAR,Cust VARCHAR,"; 
SQL += "Prog VARCHAR,CustCode VARCHAR,OpenCode VARCHAR,Memo VARCHAR)"; 
MyParam.dbMyCount.execSQL(SQL); 

मैं भी इस के लिए मेरे manifast अद्यतन:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> 

लेकिन फिर भी त्रुटि मिली:

Error Code : 1294 (SQLITE_CANTOPEN_ENOENT) Caused By : Specified directory or database file does not exist. (unknown error (code 1294): Could not open database)

मैंने वेब की खोज की और मुझे कोई जवाब या समाधान नहीं मिला।

धन्यवाद।

+2

** हार्डकोड पाथ ** कभी नहीं। यदि वह डेटाबेस वास्तव में [बाहरी संग्रहण] पर है (https://commonsware.com/blog/2014/04/08/storage- स्थिति- external-storage.html), पथ बनाने के लिए 'Environment.getExternalStorageDirectory()' का उपयोग करें इसके लिए यदि वह डेटाबेस वास्तव में [हटाने योग्य संग्रहण] पर है (https://commonsware.com/blog/2014/04/09/storage- स्थिति-removable-storage.html), तो आपको इसे बाहरी संग्रहण या [आंतरिक संग्रहण में स्थानांतरित करने की आवश्यकता है) ] (https://commonsware.com/blog/2014/04/07/storage-situation-internal-storage.html)। – CommonsWare

उत्तर

1

कृपया कॉमन्सवेयर द्वारा दिए गए सुझावों का पालन करें। लेकिन marshmallow i.e android 6.0 और ऊपर के लिए भी आपको रन टाइम अनुमतियों के लिए पूछने की आवश्यकता है। कृपया नीचे

http://developer.android.com/training/permissions/requesting.html

केवल Android के नए क्रम अनुमतियों के अनुसार पर्याप्त नहीं में प्रकट में निर्दिष्ट लिंक पर एक नजर है।

संबंधित मुद्दे