2011-01-10 7 views
8

पर काम करना बंद कर दिया है किसी कारण से this article में वर्णित डेटाबेस हैंडलिंग समाधान एचटीसी डिजायर एचडी पर काम नहीं करता है, इसके बाद ओटीए अपडेट 2.2.1 (1.72) .405.3)। यह अद्यतन से पहले डिजायर एचडी पर काम करता था और मैं 2.1, 2.2 के साथ-साथ सभी संस्करणों को चलाने वाले एमुलेटर में चल रहे वास्तविक उपकरणों पर त्रुटि को पुन: पेश करने में विफल रहा हूं।डाटाबेस हैंडलिंग एंड्रॉइड 2.2.1 (डिजायर एचडी 1.72.405.3)

दुर्भाग्यवश आप एंड्रॉइड 2.2.1 चलाने वाले एमुलेटर के लिए एवीडी नहीं बना सकते हैं और मैंने 2.2.1 के आधार पर एक रोम की कोशिश की है (मेरे पास सामान्य सामान्य एचटीसी डिजायर है) लेकिन मेरा एप्लिकेशन इसके बिना किसी समस्या के काम करता है । तो सवाल यह है कि अगर यह किसी भी तरह से एंड्रॉइड एसडीके का उपयोग कर रहा है तो यह नहीं होना चाहिए कि अचानक अचानक समस्या आती है?

मुझे पता है कि यह एक बहुत ही विशिष्ट मुद्दा है, लेकिन मुझे समस्या की रिपोर्ट करने के साथ-साथ यह तथ्य भी है कि आप एवीडी नहीं बना सकते हैं, मुझे उम्मीद है कि प्रश्न स्वीकार कर लिया गया है और मुझे आशा है कि किसी के पास कोई सुराग हो सकता है जो हो सकता है समस्या।

यहाँ एक ढेर उपयोगकर्ता द्वारा मेरी बाजार खाते में भेजा ट्रेस है:

Caused by: android.database.sqlite.SQLiteDiskIOException: disk I/O error 
at android.database.sqlite.SQLiteDatabase.native_setLocale(Native Method) 
at android.database.sqlite.SQLiteDatabase.setLocale(SQLiteDatabase.java:2049) 
at android.database.sqlite.SQLiteDatabase.<init>(SQLiteDatabase.java:1917) 
at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:889) 
at android.database.sqlite.SQLiteOpenHelper.getReadableDatabase(SQLiteOpenHelper.java:168) 
at com.MyApp.DataBaseHelper.createDataBase(DataBaseHelper.java:81) 
at com.MyApp.InitialActivity.onCreate(InitialActivity.java:33) 
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2797) 
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1066) 

संबंधित तरीकों pastebin में पाया जा सकता। चूंकि केवल एक हाइपरलिंक शामिल किया जा सकता है लिंक नीचे टिप्पणियों में पाया जा सकता है। ध्यान दें कि स्टैक ट्रेस में मिली 81 लाइन पेस्टबिन पर लाइन 10 है।

+0

http://pastebin.com/VTmCkeLq –

+0

एक ही मुद्दे के बारे में अन्य उपयोगकर्ताओं की अतिरिक्त टिप्पणियां इस टिप्पणी और नीचे से पढ़ी जा सकती हैं: http://www.reigndesign.com/blog/using-your-own-sqlite -डेटाबेस-इन-एंड्रॉइड-एप्लिकेशन/टिप्पणी-पृष्ठ -4/# टिप्पणी -43655 –

+0

लोकल en_US नए एंड्रॉइड 2.2.1 संस्करण पर उपलब्ध नहीं है? एंड्रॉइड स्रोत SQLiteDatabase.setLocale से: "@throws SQLException अगर लोकेल सेट नहीं किया जा सका। इसका सबसे आम कारण यह है कि आपके द्वारा अनुरोधित लोकेल के लिए कोई कॉललेटर उपलब्ध नहीं है।" –

उत्तर

5

मुझे लगता है कि मुझे अंत में डिजायर एचडी पर एंड्रॉइड 2.2.1 पर काम करने के लिए अपना ऐप मिल गया है। मुझे व्यक्तिगत रूप से समस्या का कारण बनने का प्रयास करने के लिए व्यक्तिगत रूप से डीबग करने का मौका नहीं मिला है।

एक विचार जो पॉप-अप हुआ है, वह हार्ड कोड कोड है जहां डेटाबेस फ़ाइल स्थित है। डीबी_PATH = "/ डेटा/डेटा/YOUR_PACKAGE/डेटाबेस /";

मुझे लगता है कि यह संभव है कि यह पथ इच्छा एचडी के लिए एंड्रॉइड 2.2.1 पर मान्य नहीं है। मैंने इस पथ का आदान-प्रदान किया: पर्यावरण .getDataDirectory() + "/ data/YOUR_PACKAGE/डेटाबेस /" + DB_NAME;

मैं इस मुद्दे को इंगित करने की कोशिश करूंगा जब मुझे वास्तविक फोन पर परीक्षण करने का मौका मिला। अगर कोई इस समाधान का परीक्षण करता है, तो कृपया मुझे बताएं कि क्या यह हल हो जाता है।

0

के साथ ही ब्योर्न से उत्कृष्ट जवाब है, इस लिंक मेरे लिए काम किया:

Link on AndDev.org

ऐसा लगता है आप विशिष्ट रूप से() this.getReadableDatabase की वापसी को बंद करने के लिए है;

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