2012-10-05 21 views
5

के साथ एप्लिकेशन क्रैश मैं एक ऐप पर काम कर रहा हूं, जहां मैं एंड्रॉइड एनडीके & जेएनआई का उपयोग करूंगा। जब भी मैं किसी भी एंड्रॉयड 4.0 या उच्चतर संस्करण पर मेरे अनुप्रयोग चलाने ... मेरे ऐप दुर्घटना और निम्न त्रुटि देता होगा ...एंड्रॉइड 4.0 या उच्चतर संस्करण

A/libc(18556): Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1) 
D/libEGL(18606): loaded /system/lib/egl/libGLES_android.so 
D/libEGL(18606): loaded /system/lib/egl/libEGL_adreno200.so 
D/libEGL(18606): loaded /system/lib/egl/libGLESv1_CM_adreno200.so 
D/libEGL(18606): loaded /system/lib/egl/libGLESv2_adreno200.so 
I/Adreno200-EGLSUB(18606): <ConfigWindowMatch:2078>: Format RGBA_8888. 
D/OpenGLRenderer(18606): Enabling debug mode 0 

मुख्य समस्या Fatal signal 11 (SIGSEGV) at 0xdeadbaad(code=1)

है किसी को भी इस बारे में पता है .. तो मुझे कारण बताओ।

+0

आपका एसओ टूट गया। आपके पास सी कोड में सेगमेंटेशन गलती है। पोस्ट स्रोत, उत्तर प्रारूपित करें और शायद हम कहीं भी जा सकते हैं। वास्तव में – Shark

+0

। SIGSEGV एक मृत दे दिया जाना चाहिए। –

+1

आमतौर पर लॉग में अधिक जानकारी होती है, उदाहरण के लिए देखें http://stackoverflow.com/questions/5314036/how-to-use-addr2line-in-android –

उत्तर

0

शुरुआत में, सेगमेंटेशन गलती और विशेष रूप से 0xdeadbaad, स्मृति स्मृति भ्रष्टाचार या इसी तरह का मतलब होगा, लेकिन मैंने हाल ही में पाया कि, एनडीके के साथ, यह दावाों के लिए भी डिफ़ॉल्ट व्यवहार है: जोर देने पर विफल होने पर यह SIGSEGV भेजता है SIGTRAP का, और इस हेक्स स्ट्रिंग में मेमोरी पॉइंटर सेट करता है।

आपको यह जांचना चाहिए कि आपका कोड जोर देने के लिए बुला रहा है या, यदि आप तीसरे पक्ष के सॉफ़्टवेयर का उपयोग कर रहे हैं, तो जांचें कि आप प्रत्येक कॉल के लिए उचित मूल्य पारित कर रहे हैं। यह जांचने का एक त्वरित तरीका एनडीईबीयूजी सेट 1 के साथ आपकी लाइब्रेरी का निर्माण करेगा (डिफ़ॉल्ट रूप से यदि आप APP_OPTIM सेट करते हैं: = अपने एप्लिकेशन.एमके में रिलीज़ करें) और जांचें कि क्या आपको अभी भी वही समस्या है या नहीं।

उम्मीद है कि इससे मदद मिलती है।