2012-06-12 15 views
5

मैं एंड्रॉइड 4.0.3 के साथ एक कम लागत वाली टैबलेट का उपयोग कर रहा हूं। यहाँ लॉग:Android 4.0.3 पर कैनवास पर अजीब क्रैश ड्राइंग। ए/libc: घातक सिग्नल 11 (SIGSEGV)

06-11 23:36:04.653: D/SynopticElement(1583): Size changed to 200x200 
06-11 23:36:04.693: D/dalvikvm(1583): GC_FOR_ALLOC freed 62K, 12% free 7275K/8199K, paused 33ms 
06-11 23:36:04.713: D/SynopticElement(1583): Size changed to 190x190 
06-11 23:36:04.733: D/dalvikvm(1583): GC_FOR_ALLOC freed 9K, 12% free 7583K/8583K, paused 22ms 
06-11 23:36:04.743: A/libc(1583): Fatal signal 11 (SIGSEGV) at 0xc52c9d4c (code=1) 

मेरी कोड डीबग करना:

0.007f -> crash 
0.009f -> crash 
0.5f -> ok 
0.1f -> ok 

किसी ने मुझे बता सकते हैं:

canvas.scale(getWidth(), getWidth()); //I'm drawing a custom component 

Paint frameBackgroundPainter = new Paint(); 
frameBackgroundPainter.setAntiAlias(true); 
frameBackgroundPainter.setStyle(Paint.Style.FILL); 
frameBackgroundPainter.setColor(0xff000000); 

Paint frameBorderPainter = new Paint(); 
frameBorderPainter.setAntiAlias(true); 
frameBorderPainter.setStrokeWidth(0.007f); //canvas is scaled 
frameBorderPainter.setStyle(Paint.Style.STROKE); 
frameBorderPainter.setColor(0xffaaaaaa); 

RectF frameRect = getFrameBorder(); //simply get the Rect to draw on canvas 
canvas.drawRect(frameRect, frameBackgroundPainter); //draw the background 

// ---> If I comment this line app does not crash!!!!! <--- 
canvas.drawRect(frameRect, frameBorderPainter); //draw the border 

रंग स्ट्रोक चौड़ाई के साथ एक समस्या नहीं है, मैं विभिन्न मूल्यों के साथ tryed रेखा चौड़ाई के लिए बहुत कम मूल्य के कारण एक अलग कैनवास पैमाने के साथ काम करने के लिए: ठीक है, लेकिन अगर मैं width=0.007f और आर सेट करता हूं तो सब ठीक है एंड्रॉइड 2.3 (टैबलेट और फोन) और एंड्रॉइड 3.0 (टैबलेट) पर ऐप ...

मैं अलग-अलग तरीके से सीमा खींचने के लिए किसी भी समाधान का उत्साह नहीं कर रहा हूं, मुझे आश्चर्य है कि अगर कोई जानता है कि यह एक है या नहीं एंड्रॉइड 4.0.3 की बग।

मैं भी सोच रहा हूँ कि यह मेरे लिए कम लागत टैबलेट की एक ग्राफिक हार्डवेयर मुद्दा हो सकता है, Unfortunatelly मैं परीक्षण करने के लिए कोई अन्य Android 4.0.3 डिवाइस है ...

मेरे टैब मेट्रिक्स:

DisplayMetrics{density=1.0, width=480, height=752, scaledDensity=1.0, xdpi=160.0, ydpi=160.42105} 

और डिवाइस के बारे में अधिक जानकारी के लिए this link पर जाएं।

+0

मेमोरी लीक – XepterX

+0

के कारण आप स्मृति से बाहर हो गए आप यह कैसे कह सकते हैं? –

+1

क्योंकि मेरे एंड्रॉइड 4.0.3 फोन पर मेरे जैसा ही स्थिति थी और कुछ शोध के बाद, यह पाया गया कि यह स्मृति रिसाव – XepterX

उत्तर

0

इंटेल x86 AVD पर एक ओपनजीएल-ईएस ऐप रोकने पर यह एक आम त्रुटि थी (प्रत्येक लॉन्च ऑनस्टॉप() पर क्रैश होता है)। यहां एक त्वरित समाधान है: - AndroidManifest.xml खोलें, एंड्रॉइड जोड़ें: एप्लिकेशन नोड को अनुमति दें ClearUserData = "true" टैग।

 
    <application 
      android:allowBackup="true" 
      android:icon="@drawable/ic_launcher" 
      android:label="@string/app_name" 
      android:theme="@style/AppTheme" 
      android:allowClearUserData="true" > 

+0

मुझे यकीन है कि यह इस मामले में फिट नहीं है .... –

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