में खींचती है तो मैं एक एंड्रॉइड एप्लिकेशन विकसित कर रहा हूं जिसमें मैं एक जीआईएफ छवि प्रदर्शित करने की कोशिश कर रहा हूं। इसके लिए मैं मूवी क्लास का उपयोग कर रहा हूं और एक क्लास GIFView बनाया जो दृश्य को बढ़ाता है। मुझे Movie.decodeFile विधि से मूवी इंस्टेंस मिल रहा है।एंड्रॉइड त्रुटि सिग्नल 11 जब कोई मूवी कैनवास
मुझे मूवी.draw (कैनवास) कहा जाता है जब मुझे एक त्रुटि मिल रही है।
04-28 13:44:18.001: A/libc(24883): Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1), thread 24883 (mple.channel002)
वहाँ चिंतित कोड है:
public void setGif(File gif)
{
movie = Movie.decodeFile(gif.getAbsolutePath());
}
@Override
public void draw(Canvas canvas) {
// TODO Auto-generated method stub
super.draw(canvas);
canvas.drawColor(0xFFCC3C6C);
if(movie != null)
{
if(movieStart == 0)
movieStart = android.os.SystemClock.uptimeMillis();
int duration = Math.max(movie.duration(), 1000);
movie.setTime((int)(duration - ((android.os.SystemClock.uptimeMillis() - movieStart)%duration)));
movie.draw(canvas, 10, 10);//TODO CRASH
invalidate();
}
}
मैं मुख्य में एक GIFView बनाने के लिए, setGIF विधि ऊपर कॉल यह पथ देने के लिए और FillParent पैरामीटर के साथ लेआउट में जोड़ने के लिए। यह तब काम करता है जब मैं छवि छवि में इस छवि को प्रिंट करता हूं। जीआईएफ के बजाय कैनवास में एक ड्रॉइंग ड्राइंग भी काम करता है। तो समस्या मूवी इंस्टेंस से संबंधित है।
मैं GIFView बनाने के लिए इन लिंक का इस्तेमाल किया http://weavora.com/blog/2012/02/07/android-and-how-to-use-animated-gifs/
मैं भी यह इस तरह से है, लेकिन movie.draw पर एक ही त्रुटि की कोशिश की Info about the Movie class for Android
EDIT1: मुझे क्या करना एक विपक्ष पर अपने परीक्षणों पर 7a का पता लगाएं एंड्रॉइड 4.4.2/स्नैपड्रैगन 801/2 जीबी movie.draw (कैनवास, 10, 10) को movie.draw (कैनवास, 10 एफ, 10 एफ) में बदलना कुछ भी नहीं बदलता है।
EDIT2: मैं सिर्फ एंड्रॉयड 2.3.5 के साथ एक पुराने जेडटीई डिवाइस पर परीक्षण किया है और यह काम किया .. जब Find7a डिवाइस पर शुरू करने तो कुछ गलत है, लेकिन मैं क्या :(
मैं समाधान पता नहीं है, लेकिन मैं इस समस्या के बारे में कुछ सवाल हैं: हम अपने क्रम पर्यावरण के बारे में कुछ पता है अगली पंक्ति का उपयोग करें? क्या आप इसे एमुलेटर, या फोन पर परीक्षण करते हैं? मैंने यह भी देखा कि movie.draw int की बजाय फ्लोट के लिए इंतजार कर रहा है। क्या आपने फ्लोट नंबरों के साथ प्रयास किया था? जैसे: movie.draw (कैनवास, 10 एफ, 10 एफ); – kisstajmi
मैं एंड्रॉइड 4.4.2/स्नैपड्रैगन 801/2 जीबी पर ओप्पो ढूंढ 7 ए पर अपना परीक्षण करता हूं और movie.draw (कैनवास, 10, 10) को movie.draw (कैनवास, 10 एफ, 10 एफ) में बदलना कुछ भी नहीं बदलता है। – Vrong
शायद ओएस या सटीक डिवाइस के साथ कोई समस्या है। अगर यह संभव है तो कृपया इसे एमुलेटर में आज़माएं। आप डिवाइस विशिष्ट समस्याओं की भी खोज कर सकते हैं। – kisstajmi