2012-02-28 18 views
7

मैं एक ऐप लागू कर रहा हूं जो Google मानचित्र का उपयोग करता है। डिबगिंग के दौरान मुझे एक दिलचस्प त्रुटि मिली जो आप आसानी से पुन: पेश कर सकते हैं (मुझे उम्मीद है)। आप गूगल से नमस्ते MapView उदाहरण का परीक्षण करते हैं:क्या यह एक नक्शा व्यू बग है?

http://developer.android.com/guide/tutorials/views/hello-mapview.html

त्रुटि: आप तेजी से किसी भी दिशा करने के लिए स्लाइड है (तिरछी दिशा की कोशिश), समय की अवधि के लिए, तो आप शायद निम्न त्रुटि प्राप्त होगा:

02-28 15:59:45.138: D/dalvikvm(26484): GC_CONCURRENT freed 2K, 13% free 18870K/21639K,  paused 2ms+4ms 
02-28 15:59:45.911: D/dalvikvm(26484): GC_FOR_ALLOC freed 1603K, 20% free 17396K/21639K, paused 14ms 
02-28 15:59:45.911: I/dalvikvm-heap(26484): Grow heap (frag case) to 18.546MB for 1560976-byte allocation 
02-28 15:59:45.942: D/dalvikvm(26484): GC_CONCURRENT freed 1K, 13% free 18919K/21639K, paused 2ms+2ms 
02-28 15:59:54.271: D/dalvikvm(26484): GC_CONCURRENT freed 2794K, 19% free 17649K/21639K, paused 2ms+2ms 
02-28 15:59:58.497: D/dalvikvm(26484): GC_CONCURRENT freed 856K, 18% free 17880K/21639K, paused 5ms+3ms 
02-28 16:00:04.341: D/dalvikvm(26484): GC_CONCURRENT freed 1003K, 17% free 18063K/21639K, paused 4ms+4ms 
02-28 16:00:11.083: D/skia(26484): ------- imageref_ashmem create failed <(null)> 131072 
02-28 16:00:11.091: D/skia(26484): ------- imageref_ashmem create failed <(null)> 131072 
02-28 16:00:11.614: D/skia(26484): ------- imageref_ashmem create failed <(null)> 131072 
02-28 16:00:11.614: D/skia(26484): ------- imageref_ashmem create failed <(null)> 131072 
02-28 16:00:11.638: D/skia(26484): ------- imageref_ashmem create failed <(null)> 131072 
02-28 16:00:11.646: D/dalvikvm(26484): GC_CONCURRENT freed 1097K, 16% free 18222K/21639K, paused 2ms+6ms 
02-28 16:00:11.646: D/skia(26484): ------- imageref_ashmem create failed <(null)> 131072 
02-28 16:00:11.646: D/skia(26484): ------- imageref_ashmem create failed <(null)> 131072 

मानचित्र क्रैश हो जाता है। कुछ पता है इसे कैसे हल करना है?

+0

मैं नेक्सस – user1238247

+0

एक Galaxy S2 स्मार्टफोन पर और आकाशगंगा पर इस उदाहरण का परीक्षण किया लेकिन मुझे लगता है कि यह अपने कोड का एक वास्तविक समस्या नहीं है । डीबग और सूचना संदेश में कोई त्रुटि नहीं है। क्या यह किसी भी तरह आपके कोड और उपयोगकर्ता अनुभव पर प्रभाव डालता है? – Yury

+1

समस्या तब होती है जब आप मानचित्र पर अपनी उंगलियों को स्लाइड करते हैं (तेज़) मानचित्र क्रैश हो जाता है। मानचित्र दुर्घटना के बाद अब और प्रयोग योग्य नहीं है। जब नक्शा दुर्घटनाग्रस्त हो जाता है तो मुझे निम्न संदेश मिलता है "imageref_ashmem विफल विफल" (जैसा कि आप ऊपर देख सकते हैं)। मुझे लगता है कि कुछ स्मृति मुद्दे हैं। कोड ऊपर दिए गए लिंक से उदाहरण कोड है। क्या कोई इस व्यवहार को पुन: उत्पन्न कर सकता है? – user1238247

उत्तर

1

सोचें कि Google मानचित्र OutOfMemoryError के साथ क्रैश करता है मैंने इसे अपने एचटीसी वाइल्डफायर पर कुछ बार पकड़ लिया। इसे छोटे ढेर स्मृति वाले उपकरणों पर आसानी से पुन: उत्पन्न किया जा सकता है। जब आप तेजी से स्लाइड (आकार बदलते हैं) तो आप अपने सभी ढेर से अधिक हो जाएंगे। सोचें कि कुछ मामलों में कचरा कलेक्टर इतनी तेजी से स्मृति जारी नहीं कर सकता है और आप स्मृति से बाहर निकलते हैं।

+2

bigHeap = "true" का उपयोग करने के अलावा समाधान क्या हो सकता है? – tasomaniac

1

कई मामलों में, MapView का उपयोग कर रुक-रुक कर दुर्घटना व्यवहार सुनिश्चित करना है कि आप विशेष रूप से बड़ी स्क्रीन उपकरणों (गोलियाँ) पर, आपके आवेदन प्रकट की तत्व "आवेदन" में largeHeap का उपयोग कर निर्दिष्ट किया है द्वारा हल किया जा सकता है। यह विशेषता API स्तर 11 (एंड्रॉइड 3.0) में शुरू हो रही है।

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.ge.android.app" 
    android:versionCode="1" 
    android:versionName="1.0"> 
<uses-sdk android:minSdkVersion="12" /> 

    <application android:icon="@drawable/app" android:label="@string/app_name" 
       android:debuggable="true" 
       android:theme="@style/CustomTheme" 
       android:largeHeap="true"> 
    ... 
    </application> 
    ... 
</manifest> 

यह भी देखें: Android Developer Guide - Android Manifest

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