के विभिन्न संस्करणों पर मेरे सहकर्मी और मुझे एंड्रॉइड Canvas ऑब्जेक्ट के साथ बहुत अजीब व्यवहार का सामना करना पड़ रहा है।एंड्रॉइड घातक सिग्नल त्रुटि 11 SIGSEGV जेलीबीन
हम प्रारंभिक कैनवास ऑब्जेक्ट से निपट रहे हैं और चुनिंदा घातक सिग्नल प्राप्त कर रहे हैं 11 2 नेक्सस 7 टैबलेट के बीच त्रुटि; जिसमें से एक 4.2.2 चलाता है और ठीक काम करता है, और दूसरा जो 4.3 और क्रैश चलाता है। हम यह समझने की कोशिश कर रहे हैं कि समस्या का निवारण कैसे करें, जिसमें यह निर्धारित करना शामिल है कि त्रुटि हमारे हिस्से पर है या किसी भी तरह से एंड्रॉइड एपीआई (संभावना नहीं है) में एक गड़बड़ है।
त्रुटि तब होती है जब हम ऑब्जेक्ट पर canvas.getWidth()
पर कॉल करने का प्रयास करते हैं।
हमारे जावा कोड: (नहीं कि यह शायद मामलों लेकिन रेक्ट हमारे codebase से है, यह नहीं है एक android.graphics.Rect
)
public Rect getViewportBounds() {
Canvas can = _diagram._canvas;
Rect vb = _viewportBounds;
if (can == null) return vb;
Point pos = _position;
int[] approxWindowVals = { (int) pos.getX(), (int) pos.getY() };
double sc = _scale;
vb._set(approxWindowVals[0], approxWindowVals[1], Math.max(can.getWidth(), 0)/sc, Math.max(can.getHeight(), 0)/sc);
return vb;
}
LogCat से हमारी जानकारी यहाँ है
08-09 16:49:14.883: W/View(4083): requestLayout() improperly called by com.nwoods.go.Viewport{41dfcb08 V.ED.... ......I. 0,0-0,0} during layout: running second layout pass 08-09 16:49:14.893: W/View(4083): requestLayout() improperly called by com.nwoods.go.Viewport{41dfcb08 V.ED.... ......I. 0,0-0,0} during second layout pass: posting in next frame 08-09 16:49:14.923: W/View(4083): requestLayout() improperly called by com.nwoods.go.Viewport{41dfcb08 V.ED.... ......I. 0,0-0,0} during layout: running second layout pass 08-09 16:49:14.943: D/abc(4083): onDraw 08-09 16:49:14.943: W/View(4083): requestLayout() improperly called by com.nwoods.go.Viewport{41dfcb08 V.ED.... ......I. 0,0-0,0} during second layout pass: posting in next frame 08-09 16:49:14.973: W/View(4083): requestLayout() improperly called by com.nwoods.go.Viewport{41dfcb08 V.ED.... ......I. 0,0-0,0} during layout: running second layout pass 08-09 16:49:14.983: W/View(4083): requestLayout() improperly called by com.nwoods.go.Viewport{41dfcb08 V.ED.... ......I. 0,0-0,0} during second layout pass: posting in next frame 08-09 16:49:15.003: W/View(4083): requestLayout() improperly called by com.nwoods.go.Viewport{41dfcb08 V.ED.... ......I. 0,0-0,0} during layout: running second layout pass 08-09 16:49:15.033: A/libc(4083): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 4083 (egressiontester)
हमारे हार्डवेयर कॉन्फ़िगरेशन निम्नानुसार हैं:
+---------+------------+-----------------------+ | Tablet | Android OS | Reached Error | +---------+------------+-----------------------+ | Nexus 7 | 4.2.2 | NO | | Nexus 7 | 4.3 | YES | +---------+------------+-----------------------+
यदि आपको कोई विचार है कि यह क्यों हो रहा है तो कृपया मुझे बताएं। हमें कैनवास को पुन: व्यवस्थित करना पड़ सकता है, लेकिन हम दोनों बहुत उलझन में हैं कि कैनवास के समान सामान्य वर्ग दो समान टैबलेट पर अलग-अलग व्यवहार कर रहा है।
आप अपने समर्थन :)
क्या आप हार्डवेयर त्वरित कैनवास का उपयोग करते हैं? क्या आपने हार्डवेयर त्वरण चालू/बंद करने की कोशिश की है? –
@ AndrzejDuś, हार्डवेयर त्वरण शुरू में बंद कर दिया गया था, और ** इसे चालू करने से ** समस्या हल हो गई, हालांकि हम कक्षा पुस्तकालय विकसित कर रहे हैं और इसलिए हमें जितने संभव हो उतने उपयोगकर्ताओं के लिए कोड लिखना होगा और मामलों का उपयोग करना होगा। –