2011-04-26 11 views
15

पर नहीं, मुझे केवल एंड्रॉइड 2.2 संस्करण पर त्रुटि मिल रही है लेकिन 2.3 पर नहीं।मुझे यह त्रुटि मिलती है: डेटा एंड्रॉइड 2.2 पर UNCOMPRESS_DATA_MAX से अधिक है लेकिन 2.3

त्रुटि:

04-26 13:41:34.862: ERROR/Database(3701): sqlite3_open_v2("/data/data/com.TravelPharm/databases/medicaments.sqlite", &handle, 1, NULL) failed 
04-26 13:41:34.942: DEBUG/dalvikvm(417): GC_EXPLICIT freed 82 objects/4000 bytes in 1617ms 
04-26 13:41:35.062: DEBUG/asset(3701): Data exceeds UNCOMPRESS_DATA_MAX (17304576 vs 1048576) 
04-26 13:41:35.062: DEBUG/AndroidRuntime(3701): Shutting down VM 
04-26 13:41:35.072: WARN/dalvikvm(3701): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
04-26 13:41:35.103: ERROR/AndroidRuntime(3701): FATAL EXCEPTION: main 
04-26 13:41:35.103: ERROR/AndroidRuntime(3701): java.lang.Error: Error copying database 
04-26 13:41:35.103: ERROR/AndroidRuntime(3701):  at com.TravelPharm.DBHelper.createDataBase(DBHelper.java:395) 
04-26 13:41:35.103: ERROR/AndroidRuntime(3701):  at com.TravelPharm.TravelPharm.SumofDetails(TravelPharm.java:290) 
04-26 13:41:35.103: ERROR/AndroidRuntime(3701):  at com.TravelPharm.TravelPharm.onCreate(TravelPharm.java:64) 
04-26 13:41:35.103: ERROR/AndroidRuntime(3701):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
04-26 13:41:35.103: ERROR/AndroidRuntime(3701):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
04-26 13:41:35.103: ERROR/AndroidRuntime(3701):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
04-26 13:41:35.103: ERROR/AndroidRuntime(3701):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
04-26 13:41:35.103: ERROR/AndroidRuntime(3701):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
04-26 13:41:35.103: ERROR/AndroidRuntime(3701):  at android.os.Handler.dispatchMessage(Handler.java:99) 
04-26 13:41:35.103: ERROR/AndroidRuntime(3701):  at android.os.Looper.loop(Looper.java:123) 
04-26 13:41:35.103: ERROR/AndroidRuntime(3701):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
04-26 13:41:35.103: ERROR/AndroidRuntime(3701):  at java.lang.reflect.Method.invokeNative(Native Method) 
04-26 13:41:35.103: ERROR/AndroidRuntime(3701):  at java.lang.reflect.Method.invoke(Method.java:521) 
04-26 13:41:35.103: ERROR/AndroidRuntime(3701):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
04-26 13:41:35.103: ERROR/AndroidRuntime(3701):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
04-26 13:41:35.103: ERROR/AndroidRuntime(3701):  at dalvik.system.NativeStart.main(Native Method) 

मैं समझता हूँ कि है क्योंकि मेरे डेटाबेस बहुत बड़ा "UNCOMPRESS_DATA_MAX" है, इसलिए मैं कैसे इस समस्या का समाधान कर सकते हैं ??

मैं किसी भी मदद की सराहना करता हूं,

धन्यवाद !!!

उत्तर

28

मुझे भी एक ही समस्या है और बहुत खोज के बाद, मुझे यह प्रश्न मेरे प्रश्न का उत्तर देने के लिए मिला।

http://ponystyle.com/blog/2010/03/26/dealing-with-asset-compression-in-android-apps/

सारांश में, एंड्रॉयड जो कि पृष्ठ पर सूची को छोड़कर किसी भी संपत्ति फ़ाइल संपीड़ित करता है, क्योंकि वे पहले से ही संकुचित कर रहे हैं। यह संपीड़न आम तौर पर एक अच्छी बात है, लेकिन जब फ़ाइल बहुत बड़ी होती है तो यह प्रोग्रामर को वापस ले जाती है। लेखक द्वारा सुझाए गए दो विकल्प हैं 1) डेटाबेस फ़ाइल का नाम बदलें जिसे संपीड़ित नहीं किया जाता है (जैसे .jpg) या 2) डेटाबेस के फ़ाइल एक्सटेंशन के लिए संपीड़न बंद करें (ब्लॉग पोस्ट को कैसे करें उस)। संख्या 2 मुश्किल हो सकता है यद्यपि यदि आप ग्रहण का उपयोग कर रहे हैं तो लेखक पहले विकल्प का उपयोग करने की सिफारिश करता है। https://web.archive.org/web/20120423232710/http://www.nutprof.com/2010/12/data-exceeds-uncompressdatamax.html

संपादित करें 2: इस साइट में यह वास्तव में बस बताते हैं:

इस पूरी समस्या एंड्रॉयड 2.3.3 जिसके कारण आप त्रुटि दिखाई :)

संपादित नहीं है में सही था खोज रहे हैं इस जवाब पर वापस, मुझे एहसास है कि आपकी फ़ाइल के आकार के आधार पर, शायद आप किसी वेब सर्वर से फ़ाइल डाउनलोड करने पर विचार कर सकते हैं और फिर उसे जहां भी जाना चाहते हैं उसे कॉपी कर सकते हैं। मेरे मामले में, मैं ऐप निजी स्टोरेज में SQLLite DB की प्रतिलिपि बना रहा था, लेकिन चूंकि एपीके पर हस्ताक्षर किए गए हैं, इसलिए मैं अपने assests से पुराने डेटाबेस से छुटकारा नहीं मिल सका। तो अब उन सभी भयानक नामकरण सामग्री के बजाय, मैं अभी गया और इसे इंटरनेट से पहले चलाने पर डाउनलोड किया और इसे निजी स्थान पर रखा। इस तरह एप्लिकेशन पहले आकार पर अपने आकार को दोगुना नहीं करता है।

+0

ने एक्सटेंशन को .txt से .jpg में बदल दिया, और यह काम किया ... बहुत बहुत धन्यवाद! उपयोगी लिंक के लिए –

+0

धन्यवाद। –

2

मैंने बॉब का उल्लेख ऊपर किया है। वो मेरे लिए बहुत अच्छा था। मैं 2.3.3 से पुराने संस्करणों पर ऐप चलाने में असमर्थ था, लेकिन जब मैंने अपनी .html फ़ाइल का नाम बदल दिया (जो वेब SQL आदेशों के कारण 4 एमबी था) .jet (या उस मामले के लिए enter link description here में उल्लिखित किसी भी पहले से संपीड़ित एक्सटेंशन), यह 2.1 अपडेट 1 और 2.2 पर भी ठीक काम करता है।

समस्या 2.3.3 से पुरानी एंड्रॉइड संस्करण थी/संपत्ति/फ़ोल्डर में आकार में 1 एमबी से अधिक फ़ाइलों को संपीड़ित करने की कोशिश कर रहे थे। इसलिए, मैंने इसे पहले ही संकुचित एक्सटेंशन में बदल दिया ताकि एंड्रॉइड इसे फिर से संपीड़ित करने की कोशिश न करे। हालांकि मुझे एंड्रॉइड प्रोग्रामिंग के बारे में पता नहीं है, मुझे लगता है कि ऊपर और कुछ अन्य लिंक ऑनलाइन पढ़ने के बाद क्या हो रहा है।

1

मुझे फियोयो (2.2) के लिए एक कामकाज मिला, लेकिन एपीके 4.x मेग्स से 10.x मेग्स तक पहुंच गया। इसे सरल बनाएं: संपीड़न के साथ एपीके फ़ाइल को दोबारा दोहराएं। मैंने इसे विंडोज़ पर किया: 1. -पीपी फ़ाइल को पर नाम बदलें 2. इसे कुछ फ़ोल्डर, पर अनजिप करें 3.-इसे फिर से ज़िप करें "स्टोर" विकल्प (मैं वास्तव में WinRAR का उपयोग कर रहा हूं, इसलिए "स्टोर" का मतलब कोई संपीड़न नहीं है), 4.-फिर इसे ज़िप से एपीके, पर वापस नाम दें 5.-और इसे इंस्टॉल करें।

0

बस .db विस्तार के बदलते .png करने के लिए इसे 2.2 और इसके बाद के संस्करण उपकरणों

0

आप फ़ाइल विभाजित और परिसंपत्तियों फ़ोल्डर में विभाजित फ़ाइलें डाल सकता है में काम किया जाएगा।
, उदा, largfile.db db1.db को, db2.db, db3.db
और फिर डिवाइस पर largefile.db वापस करने के लिए इन फ़ाइलों को गठबंधन करने के लिए कोड लिखने के लिए ।

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