2012-12-24 13 views
46

अब मैं फोनगैप के साथ एंड्रॉइड ऐप्स विकसित करता हूं। हाल ही में जब मैं HTML पृष्ठों के बीच स्विच करने की कोशिश, आवेदन बंद कर दिया, और LogCat में निम्न त्रुटि दिखाई देती है:0x00000000 पर घातक सिग्नल 11 (एसआईजीएसईजीवी) (कोड = 1) - फोनगैप

12-24 15:43:39.237: A/libc(23631): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 23631 (.example.app) 

मैं इस त्रुटि के बारे गूगल पर एक सा खोजा गया है, और क्या मैं समझता हूँ कि यह संबंधित है डिवाइस की स्मृति के लिए। मुझे कुछ समाधान मिले, लेकिन इतने ज्यादा नहीं कि मुझे एहसास हुआ कि मैं उन्हें फोनगैप में कैसे कार्यान्वित करता हूं।

क्या किसी को यहां इस त्रुटि का सामना करना पड़ा है? समस्या को हल करने के लिए मैं क्या कर सकता हूं?

+9

यह एक ही ऑब्जेक्ट पर एक ही मूल विधि को एक ही समय में कॉल करने वाले एक से अधिक थ्रेड के कारण भी हो सकता है। देखें: http://stackoverflow.com/a/11812665/1172181। तो, जवाब सिंक्रनाइज़ करना होगा और यह सुनिश्चित करना होगा कि आपका कोड थ्रेड सुरक्षित है। – Luis

उत्तर

42

आप लिखा तो है (या उपयोग कर रहे हैं) है कि बारी में NDK के माध्यम से देशी C/C++ कोड का उपयोग करता है एक प्लगइन, यह है कि मूल कोड में एक बग का संकेत हो सकता आप :) धन्यवाद।

अन्यथा, यह डिवाइस या एमुलेटर के फर्मवेयर में एक बग है जिस पर आप परीक्षण कर रहे हैं।

यदि आप मूल रोम के साथ नेक्सस डिवाइस पर या विभिन्न निर्माताओं के विभिन्न उपकरणों पर एक एमुलेटर में इसे पुन: पेश कर सकते हैं, तो शायद यह एंड्रॉइड में एक बग है। उस स्थिति में, कृपया एक नमूना प्रोजेक्ट बनाएं जो त्रुटि को पुन: उत्पन्न कर सके और इसे संपूर्ण स्टैक ट्रेस http://b.android.com, एंड्रॉइड ओएस जारीकर्ता ट्रैकर के साथ पोस्ट करें।

यदि आप केवल एक डिवाइस या एक थर्ड-पार्टी रोम पर इसका सामना कर रहे हैं, तो शायद यह एक और विशिष्ट बग है - डिवाइस निर्माता या रॉम प्रकाशक से आपके लक्षणों से संपर्क करना आपकी सबसे अच्छी शर्त है।

+1

धन्यवाद, आपने मुझे बहुत मदद की। मैं उसे जांचने के लिए एक और डिवाइस प्राप्त करने का प्रयास करूंगा और यदि आवश्यक हो तो मैं बाद में अपडेट करूंगा। :) – Yehuda

+0

धन्यवाद। यह मेरी समस्या हल हो गई। एंड्रॉइड सही त्रुटि संदेश क्यों नहीं प्रदान करता है? यह बहुत बुरा है। –

10

मुझे बस उस परियोजना पर एक ही समस्या थी जिस पर मैं काम कर रहा था। यह पता चला कि मैं कई छवियों और ध्वनियों को लोड कर रहा था और एक गतिविधि को तुरंत चालू करने के दौरान ऐप को स्मृति से बाहर निकलने का कारण बना रहा था। क्या आपका प्रोग्राम बहुत मेमोरी-गहन संपत्ति का उपयोग करता है? क्या आप उनके आकार को कम कर सकते हैं?

मेरे मामले में, Fatal signal 11 (SIGSEGV) लाइन से पहले लॉगकैट में हरा (INFO- स्तर लॉगिंग) में एक स्टैक ट्रेस था। स्टैक ट्रेस OutOfMemoryException था जबकि ऐप Activity के लिए संपत्ति लोड कर रहा था, मैं शुरू कर रहा था। तो मैंने अपने ड्रॉबल्स को खींच लिया (मेरे प्रोग्राम में उनमें से बहुत कुछ था), उन्हें उनके फ़ाइल आकार को कम करने के लिए संपादित किया, और फिर कोशिश की। बग दूर चला गया।

01-15 05:20:40.462: E/dalvikvm-heap(4513): Out of memory on a 3145744-byte allocation. 
01-15 05:20:40.462: I/dalvikvm(4513): "main" prio=5 tid=1 RUNNABLE 
01-15 05:20:40.462: I/dalvikvm(4513): | group="main" sCount=0 dsCount=0 obj=0x4158b6a0 self=0x41001a60 
01-15 05:20:40.462: I/dalvikvm(4513): | sysTid=4513 nice=0 sched=0/0 cgrp=apps handle=1074673744 
01-15 05:20:40.462: I/dalvikvm(4513): | schedstat=(0 0 0) utm=41 stm=20 core=1 
01-15 05:20:40.462: I/dalvikvm(4513): at android.graphics.BitmapFactory.nativeDecodeAsset(Native Method) 
01-15 05:20:40.462: I/dalvikvm(4513): at android.graphics.BitmapFactory.decodeStream(BitmapFactory.java:592) 
01-15 05:20:40.462: I/dalvikvm(4513): at android.graphics.BitmapFactory.decodeResourceStream(BitmapFactory.java:445) 
01-15 05:20:40.462: I/dalvikvm(4513): at android.graphics.drawable.Drawable.createFromResourceStream(Drawable.java:781) 
01-15 05:20:40.462: I/dalvikvm(4513): at android.content.res.Resources.loadDrawable(Resources.java:1963) 
01-15 05:20:40.462: I/dalvikvm(4513): at android.content.res.Resources.getDrawable(Resources.java:672) 
01-15 05:20:40.462: I/dalvikvm(4513): at com.kbi.speeddraw.lite.game.drawables.character.ExplodingCharacterDrawable.<init>(ExplodingCharacterDrawable.java:27) 
<!-- snip --> 
01-15 05:20:40.462: I/dalvikvm(4513): at com.kbi.gameengine.api.gameactivity.GameActivity.onCreate(GameActivity.java:80) 
01-15 05:20:40.472: I/dalvikvm(4513): at android.app.Activity.performCreate(Activity.java:5048) 
01-15 05:20:40.472: I/dalvikvm(4513): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094) 
01-15 05:20:40.472: I/dalvikvm(4513): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2052) 
01-15 05:20:40.472: I/dalvikvm(4513): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2113) 
01-15 05:20:40.472: I/dalvikvm(4513): at android.app.ActivityThread.access$700(ActivityThread.java:139) 
01-15 05:20:40.472: I/dalvikvm(4513): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1224) 
01-15 05:20:40.472: I/dalvikvm(4513): at android.os.Handler.dispatchMessage(Handler.java:99) 
01-15 05:20:40.472: I/dalvikvm(4513): at android.os.Looper.loop(Looper.java:137) 
01-15 05:20:40.472: I/dalvikvm(4513): at android.app.ActivityThread.main(ActivityThread.java:4918) 
01-15 05:20:40.472: I/dalvikvm(4513): at java.lang.reflect.Method.invokeNative(Native Method) 
01-15 05:20:40.472: I/dalvikvm(4513): at java.lang.reflect.Method.invoke(Method.java:511) 
01-15 05:20:40.472: I/dalvikvm(4513): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1004) 
01-15 05:20:40.472: I/dalvikvm(4513): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:771) 
01-15 05:20:40.472: I/dalvikvm(4513): at dalvik.system.NativeStart.main(Native Method) 
01-15 05:20:40.472: A/libc(4513): Fatal signal 11 (SIGSEGV) at 0x00000be0 (code=1), thread 4513 (.speeddraw.lite) 
01-15 05:20:40.472: A/libc(4513): Fatal signal 11 (SIGSEGV) at 0x00180500 (code=1), thread 4527 (.speeddraw.lite) 
+1

एक और चीज जो मेरे लिए बग का कारण बन रही है: ऐप एक दूसरे थ्रेड के अंदर मेमोरी से बाहर चला गया, मुख्य यूआई थ्रेड नहीं। मुझे नहीं पता कि इससे स्थिति खराब हो गई है या नहीं। मैं गैलेक्सी एस 3 पर विकास कर रहा हूं। – Kevin

+0

आपने अपनी छवियों को कितना कम किया? मेरा केवल 720x720 (गैलेक्सी एस 3 के समान चौड़ाई) है। मैंने उन्हें 25% तक घटा दिया और इससे कोई फर्क नहीं पड़ता। जाहिर है, मैं बहुत दूर नहीं जाना चाहता हूं या वे खराब दिखना शुरू कर देंगे। –

+0

मुझे याद नहीं है। मैं आपको बता सकता हूं कि मेरे 'res' फ़ोल्डर का वर्तमान आकार, जिसमें मैंने उपयोग और लोड की गई सभी छवियां (और ध्वनियां) शामिल हैं, 70 9 KB है। मैंने उन्हें संपादित करने से पहले, मेरा res फ़ोल्डर आकार में कई एमबी था। मैं लगभग सभी संसाधनों को उस गतिविधि में लोड कर रहा था जो मेरे लिए असफल रहा था, इसलिए मुझे लगता है कि मेरा एस 3 एक ही गतिविधि में लगभग 1 एमबी लोड किया जा सकता है। – Kevin

3

सुनिश्चित करें कि आप संपत्ति निर्देशिका के अंतर्गत सभी संसाधनों छवियों करें: अपने LogCat उत्पादन मेरा की तरह लग रहा है, तो अगर आप एक ऐसी ही समस्या आ रही है को देखने के लिए आप देख सकते हैं। मुझे यह समस्या थी और यह पता चला कि मेरी छवियों में से एक गायब है। एक बार जब मैं छवि निर्देशिका संपत्ति के तहत वापस रखता हूं, तो सब कुछ ठीक है।

3

मेरे मामले में आउटफॉमरी मुद्दों के लिए जांचें मुझे सैमसंग एस 3 पर यह त्रुटि मिली और स्टार्टअप गतिविधि पर कई छवियों के प्रबंधन के लिए था। मैंने बिना किसी समाधान के बहुत सारे प्रतिक्रियाएं चलाईं क्योंकि मेरे पास एडिटटेक्स्ट या इनपुट बिल्कुल नहीं था (असल में, मुझे नहीं पता कि त्रुटि स्पैन करने योग्य स्ट्रिंग शून्य लंबाई ..... और कोई अन्य चीज़ नहीं दिखाती आउटऑफमेमरी इत्यादि की तरह), तो मुझे लगता है कि संकल्प द्वारा आदेशित छवियां गलत फ़ोल्डर्स और oversized में थीं, और आसमान में ढेर। गुड लक

4

निम्न Google प्लस पोस्ट मेरी समस्या तय:

असल समस्या 9 पैच फ़ाइलों में ऑप्टिकल सीमा से संबंधित है।मेरे मामले में मैं होलो थीम से कॉपी किए गए नए 9-पैच का उपयोग कर रहा था। यह नया पैच एंड्रॉइड के पुराने संस्करणों में अमान्य है जैसा कि link

+0

धन्यवाद, यह बिल्कुल मेरी समस्या थी - मैंने इसे कभी अनुमानित नहीं किया होगा स्रोत। –

+0

यह मेरा मुद्दा था। आप एक जीवन बचतकर्ता हैं। –

1

इस का उपयोग करें ... options.headers = {"कनेक्शन": "बंद करें"};

15

मुझे xhdpi नेक्सस 7 पर एक ही त्रुटि मिल रही थी लेकिन चीजें मेरे पुराने फोन पर ठीक काम करती थीं। बहुत सारी छोटी बटनों के साथ एक बड़ा ग्रिड व्यू अपडेट करते समय मेरी समस्या आई।

A/libc(7410): Fatal signal 11 (SIGSEGV) at 0xbe8a8000 (code=1), thread 7410 

मुझे नहीं लगता कि यह आपकी समस्या है, क्योंकि अपने पीसी 0 था और मेरा 0xbe8a8000 पर था, लेकिन यह कोशिश करने के लिए आसान है और यह मेरी समस्या तय तो मैं मामले में यह पोस्ट करने के लिए जा रहा हूँ किसी और यहां आता है एक एसईजीवी समाधान की तलाश में।
इसी तरह की समस्या के बारे में https://github.com/MasDennis/Rajawali/issues/313 पर एक चर्चा हुई और किसी ने उल्लेख किया कि उन्हें एक ही समस्या है और हार्डवेयर त्वरण को बंद करने के लिए इसे ठीक किया गया है। कोशिश करना आसान है और यह मेरी समस्या को ठीक करता है।
एंड्रॉयड प्रकट आवेदन ऐड में:

android:hardwareAccelerated="false" 

आशा इस किसी और में मदद करता है ...

+0

हाँ धन्यवाद, एमुलेटर में यह कारण था। हार्डवेयर को गलत पर सेट करें और यह अब क्रैश नहीं होता है लेकिन अब मुझे मिलता है: "eglMakeCurrent (917): त्रुटि 0x3001 (EGL_NOT_INITIALIZED)" – marco

+0

मेरा खनन बचाया गया :) –

+0

@steven smith मैं एंड्रॉइड का उपयोग कर रहा हूं: हार्डवेयर एक्सेलेरेटेड = "झूठा", लेकिन मैंने अपनी समस्या का समाधान नहीं किया है फिर भी मेरा आवेदन दुर्घटनाग्रस्त हो गया है। क्या आप इस त्रुटि को हल करने के लिए कोई अन्य विचार हैं "घातक सिग्नल 11 (एसआईजीएसईजीवी), कोड 1, गलती 210x (lfontpro.source) में गलती addr 0xa5156d60"। धन्यवाद – 135

0

काम निम्न के लिए मुझे वेबव्यू में त्रुटि से छुटकारा पाने के:

webView.freeMemory(); 

या

webView.clearCache(true); 

दूसरा विकल्प धीमा कर देगा आपका ऐप

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