2012-07-02 8 views
6

मैं एक ऐसा गेम बनाने के लिए एंडइंजिन का उपयोग कर रहा हूं जो बहुत से चलने वाले sprites से संबंधित है। यह असंगत है, लेकिन अंत में मुझे लॉग बिल्ली (थ्रेडिड = 3: सिग्नल 3 पर प्रतिक्रिया) में एक संदेश मिलता है और गेम फ्रीज होता है। इस त्रुटि का मतलब क्या है? मैं कोड जहां ऐसा होता है (यह रूप में चिह्नित है) में संकुचित है:मुझे क्यों मिल रहा है: थ्रेडिड = 3: सिग्नल 3 और गेम फ्रीज (एंडइंजिन) पर प्रतिक्रिया?

private void levelComplete(){ 
     runOnUiThread(new Runnable() { 
      public void run() { 
       Toast.makeText(TestGFX5Activity.this, "Level Complete", Toast.LENGTH_SHORT).show(); 
      } 
     }); 
     Log.e("Level Complete","Going to reset values"); 
     //Reset values 
     level++; 
     fillerCount = (originalNumberOfFillers + level - 1); 
     areaFilled=0; 
     fillAreaPercent = 0; 

     //Rid scene of sprites 
     for(int x=0;x<=fillerNum;x++){ 
      filler[x].body.setActive(false); 
      scene.detachChild(filler[x].sprite); 
      filler[x].active=false; 
      filler[x].scale=originalSpriteScale; 
      filler[x].body.setUserData("inactive"); 
     } 
     levelText.setText("Level: "+Integer.toString(level)); 
     fillersLeftText.setText("Balls left: "+Integer.toString(fillerCount)); 
     percentFilledText.setText("0%"); 
     fillerNum = -1; 

     Log.e("Level Complete","values reset"); 

     randx = random.nextInt(650) + 25; 
     randy = random.nextInt(400) + 25; 
     randix = random.nextInt(10); 
     randiy = random.nextInt(10); 
     if(randix%2==0) 
      ix = 5; 
     else 
      ix = -5; 
     if(randiy%2==0) 
      iy = 5; 
     else 
      iy = -5; 

     Log.e("Level Complete","Creating destroyer"); //This line executes 
     destroyer = new Ball(randx, randy, destroyerTR, getVertexBufferObjectManager(), ix, iy); //Code breaks here (*sometimes*) 
     Log.e("Level Complete","complete"); //This line does not 
    } 

अजीब बात कोड 4/5 बार की तरह काम करता है कि (मैं आमतौर पर 3 या 4 बार स्तर कर सकते हैं और पर निर्भर है 9 गुना) इससे पहले कि दुर्घटनाग्रस्त हो। मुझे यकीन नहीं है कि इसका कारण क्या है। क्या किसी के भी पास कोई सुझाव है?

+0

मुझे एक ही समस्या का सामना करना पड़ता है। आप इसे कैसे हल करते हैं? – Ricardo

उत्तर

6

जब कोई एएनआर स्थिति होती है, तो एंड्रॉइड रनटाइम एएनआर रिपोर्ट उत्पन्न करने के लिए अपने स्टैक निशान को डंप करने के लिए सभी दल्विक वीएम को सिग्नल 3 भेजता है। स्ट्रैक ट्रेस के डंप से आपके ऐप को क्षणिक रूप से निलंबित करने के लिए दल्विक का कारण बन जाएगा।

मैं आपको एएनआर के लिए लॉगकट (ईवेंट और मुख्य बफर) देखने के लिए सुझाव देता हूं। समस्या का कारण बनने के लिए एएनआर निशान के लिए/डेटा/एएनआर भी जांचें।

1

/data/anr/traces.txt फ़ाइल की जांच करके, आप पाते हैं कि दर्जनों धागे हैं, यही कारण है कि आपका एप्लिकेशन जमे हुए है।

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