2012-11-07 19 views
10

मैं लगभग एक ही मुद्दे के रूप में जहां here, जवाब वर्णित इस पोस्ट में मेरी मदद नहीं करता है, मैं अपने तुल्यकारक तुरंत इसे करने के लिए बैंड के स्तर सेट करने के बाद जारी की है। यह मेरे 4.0.4 डिवाइस पर सही काम करता है, यह दोस्त के 2.3.5 डिवाइस पर बहुत अच्छा काम करता है, यह डिवाइसों के थोड़े प्रतिशत पर दुर्घटनाग्रस्त हो जाता है और इससे कोई फर्क नहीं पड़ता कि इन उपकरणों पर एंड्रॉइड का कौन सा संस्करण चल रहा है।तुल्यकारक - प्रभाव पुस्तकालय लोड नहीं

तो वहाँ

Equalizer mEqualizer = new Equalizer(0, mediaPlayer.getAudioSessionId());

java.lang.UnsupportedOperationException: Effect library not loaded 
     at android.media.audiofx.AudioEffect.<init>(AudioEffect.java:355) 
     at android.media.audiofx.Equalizer.<init>(Equalizer.java:149) 

पर त्रुटि किसी भी सुझाव मुझे नहीं पता कि यह कैसे हल करने के लिए है?

उत्तर

0

यह डिवाइस पर लोड होने वाले एंड्रॉइड के निर्माण पर निर्भर करता है।

यह लॉग AudioEffect सुविधा को लागू करता है करने के लिए कोई पुस्तकालय है कि वहाँ का मतलब है।

मुझे डर है कि इसके लिए कोई समाधान नहीं है हूँ,() तुल्यकारक उपयोग करने के बाद नहीं बल्कि उसके बाद अपने प्रोजेक्ट में किसी तीसरे पक्ष ऑडियो प्रभाव पुस्तकालय

3

सुनिश्चित करें कि आप उपकरण को रीबूट करें और इसे फिर से परीक्षण रिलीज के साथ बनाने का आयात , यह सुराग खोजने के 2 दिनों के बाद मेरे लिए काम किया।

0

प्रलेखन से, आप एक सुंदर बाहर निकलने के लिए एक तुल्यकारक, MediaPlayer, विजुअलाइज़र, आदि को रिलीज() कॉल करने के लिए है, या जब एप्लिकेशन को पुन: प्रारंभ आपको यह त्रुटि दिखाई देगा। इसके बाद एकमात्र उपाय रीबूट करना है, जैसा कि पहले इस धागे में उल्लिखित है।

यह वह जगह है जहां एंड्रॉइड एप्लिकेशन लाइफसाइकिल चीजों को थोड़ा मुश्किल बनाता है, क्योंकि ऐप्स को कभी भी बाहर निकलने के लिए कभी नहीं जाना चाहिए (केवल रोकें और फिर से शुरू करें), जब तक कि ओएस द्वारा पूरी तरह से स्मृति कारणों के लिए आवश्यक न हो, या रीबूट होता है। आपके ऐप ऑनस्ट्रोय() विधि दोनों मामलों में बुलाया जाता है।

आप OnDestroy() में रिलीज() डाल सकते हैं, और कहा कि तैनात एप्लिकेशन के लिए Android जीवन चक्र को पूरा होगा। आपके उपयोगकर्ता इस त्रुटि को नहीं देख पाएंगे।

विकास में हालांकि एक समस्या है: ग्रहण जैसे आईडीई (जो वास्तव में आईडीई बनाने के लिए एक ढांचा है, और आईडीई स्वयं नहीं है ...) इसे एक नष्ट संदेश भेजने की बजाय ऐप प्रक्रिया को मार देगा। यह जीवन चक्र का उल्लंघन करता है और रिलीज() को नहीं कहा जाता है।

यह भी कारण है कि आप System.exit फोन कभी नहीं करना चाहिए()। यह इस तरह की अपमानजनक निकास के जोखिम पर जीवन चक्र का उल्लंघन करता है।

तो आपकी प्रक्रिया अपमानजनक से बाहर निकल रही थी। विकास में ही होता है, तैनाती नहीं। एक उपाय प्रक्रियाओं को रोकने के लिए ग्रहण में डिवाइस विंडो का उपयोग नहीं करना है। यह एक स्टॉप नहीं है, लेकिन एक हत्या है।

एक्लिप्स भी एक उदाहरण प्रोजेक्ट चलाते समय एक ऐप प्रोजेक्ट चलाते समय प्रक्रिया को अनजाने में मारता है (जीवन चक्र उल्लंघन)।

के रूप में डॉक्टर ने कहा, अगर यह दर्द होता है, यह मत करो: बजाय डिबगर जिसे ऐप पर वास्तविक जीवन चक्र संदेश भेजता है का उपयोग करें।

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