2011-12-08 12 views
7

में दूसरों के साथ प्रतिस्थापित होने के बाद ड्रायबल बदल नहीं रहे हैं मैंने अपने ऐप के लिए एक नया थीम सेट बनाया है, और फैसला किया है कि मुझे अब पुराने की आवश्यकता नहीं है। तो, मैंने अपनी नई छवि फ़ाइलों को पुराने लोगों पर कॉपी किया, उन सभी को बदल दिया। मैंने यह सब मेरे drawables फ़ोल्डर्स के लिए किया था। मैंने फिर R.java को फिर से बनाया, और मेरे आवेदन को पुनर्निर्माण किया।फ़ोल्डर्स

किसी कारण से, यह पुरानी छवियों को उठा रहा है और उन्हें प्रदर्शित कर रहा है। ठीक है, मैंने सोचा, स्मृति/कैश में कुछ होना चाहिए। मैं बस अपनी एमुलेटर छवि मिटा दूंगा और पुनः प्रयास करूंगा।

ऐसा करने के बाद, ऐप अभी भी पुरानी तस्वीरों का उपयोग करता है। मैंने सोचा कि मैंने गलती की होगी और ग्रहण में छवियों की जांच की है, लेकिन यह वहां नई छवियों को दिखाता है। मैंने तब कठोर मामलों को लिया और ड्रॉबल्स फ़ोल्डरों को हटा दिया। इस वजह से मेरी परियोजना को बाहर निकलने का कारण बन गया, इसलिए मैंने वांछित नई तस्वीरों को तुरंत जोड़ा और परियोजना का पुनर्निर्माण किया। कोई त्रुटि दिखाई नहीं दी, और सभी चित्र ग्रहण में बदल गए।

लेकिन ऐप चलाने पर, पुरानी तस्वीरों को अभी भी दिखाया गया है। ऐप के कुछ हिस्सों को छोड़कर। मैंने उपयोग की गई 70 या इतनी तस्वीरों में से केवल 2 ही नए संस्करण को प्रदर्शित कर रहे थे। अन्य सभी अभी भी पुराने चित्र दिखा रहे हैं।

यहां क्या हो सकता है? मैंने अपने एमुलेटर को पुनरारंभ करने की कोशिश की, प्रोजेक्ट को दोबारा शुरू किया, स्रोत के रूप में पुराने का उपयोग करके एक नया प्रोजेक्ट बनाया, मेरे फोन को पुनरारंभ किया, ऐप इंस्टॉल करने से पहले सभी ऐप डेटा मिटा दिया, सभी छवियों को हटा दिया और उन्हें नए लोगों के साथ बदल दिया, लेकिन कुछ भी नहीं लगता काम।

एक ऐप जिसमें नए चित्र शामिल हैं, जो पूरी तरह से ताजा एमुलेटर पर चल रहे हैं, अभी भी कम से कम एक घंटे पहले हटाए गए चित्र प्रदर्शित करते हैं?

+0

क्या आपने ग्रहण को ताज़ा किया था? (आप ग्रहण में अपने res-folder का चयन कर सकते हैं और f5 दबा सकते हैं) – Jave

+0

सूची में जोड़ने के लिए भूल गए, लेकिन हाँ मैंने किया। यह पहली बात थी जो मैंने किया था। मैंने रीफ्रेशिंग/फिक्सिंग/बिल्डिंग प्रोजेक्ट्स के संदर्भ में एक्लीप्से आपको फेंकने वाले सभी विकल्पों की कोशिश की। उदाहरण के लिए जीयूआई बिल्डर नई तस्वीरों को दिखाता है, भले ही परिणाम में कुछ भी बदलाव न हो। –

+0

मुझे लगता है कि आपने एक अलग एमुलेटर की कोशिश की, बस मामले में? या एक असली डिवाइस पर? – Jave

उत्तर

22

पुराने संकलित डेटा को हटाने के लिए अपने बिन-फ़ोल्डर को वाइप करें।

+0

यदि आपके बिन फ़ोल्डर में कुछ भी नहीं है तो आप अपने 'जनरल' फ़ोल्डर को भी मिटा सकते हैं। – darren

+1

यदि आप पूरे बिन फ़ोल्डर को पोंछने में सहज नहीं हैं, तो 'resource.ap_' फ़ाइल आज़माएं - मेरे लिए काम किया! – danj1974

+0

मैंने बस 'बिन/'फ़ोल्डर हटा दिया और इस समस्या को हल किया – William

5

टीएल; डीआर: पुराने संस्करणों के लिए भी अपने अन्य ड्रॉइंग-xxxdpi फ़ोल्डरों की जांच करें!

मुझे यह वही समस्या थी, और यहां कोई भी समाधान मदद नहीं करता था। यह मुझे पागल बना रहा था।

मैंने res.png के साथ res/drawable-hdpi/file.jpg को प्रतिस्थापित किया था। यह एक अलग विस्तार था और अलग-अलग सामग्री थी। ग्रहण नया संस्करण देख रहा था, लेकिन सफाई/ताज़ा करने की कोई मात्रा नहीं, ऐप को अनइंस्टॉल करना या मैन्युअल रूप से बिन/जेन फ़ोल्डर्स को हटाने से डिवाइस को नया संस्करण दिखाई दिया।

तब मुझे एहसास हुआ कि मैं में अन्य संस्करणों था:

  • रेस/drawable-ldpi/file.jpg
  • रेस/drawable-mdpi/file.jpg
  • रेस/drawable-xhdpi/file.jpg

एक बार जब मैंने उन संस्करणों को file.png के आकार के संस्करणों के साथ बदल दिया, तो ऐप के एक सरल पुन: चलाने से समस्या ठीक हो गई। ऐसा लगता है कि एंड्रॉइड रिसोर्स कंपाइलर ने फ़ाइल के "jpg" संस्करण को पहले ड्रॉइंग फ़ोल्डरों में से एक में देखा, फिर ड्रॉइंग-एचडीपीआई में बाद के "पीएनजी" संस्करण को नजरअंदाज कर दिया। भले ही वह जिस डिवाइस पर चल रहा था वह एचडीपीआई था, फिर भी ड्रॉइंग अन्य डीपीआई फ़ोल्डर से बाहर आ रहा था।

0

यदि पुराने संस्करणों के लिए अन्य ड्रायबल फ़ोल्डरों की जांच करना और आपके बिन और जेन फ़ोल्डर्स को पोंछना काम नहीं करता है।

अपने कोड में setImageResource(R.drawable.YourPNG) देखें: xml में कॉन्फ़िगर किए गए ड्रायबल को ओवरराइड कर सकते हैं: res/layout/folder।

0

एंड्रॉयड स्टूडियो: तो Clean और Build नहीं करता है काम File>Invalidate Caches/Restart

या File>Synchronize

के साथ

जाओ कोशिश दोनों मेरे लिए काम किया।

0

आसान समाधान अपने एमुलेटरसे एप्लिकेशन को अनइंस्टॉल करना तो एंड्रॉयड स्टूडियो से इसे फिर से चलाकर फिर से स्थापित है। (यह सब कुछ अपडेट करने के लिए मजबूर करेगा)

यह हमेशा एक अजीब समस्या है, लेकिन मैंने इसे अपने पीसी से पुरानी छवियों को हटाकर इसे समझ लिया, फिर भी पुरानी छवि अभी भी ऐप (जो असंभव है) पर दिखाई देगी। तो मुझे लगा कि समस्या एमुलेटर के साथ थी। (चूंकि एमुलेटर का अपना भंडारण है)

यदि फ़ाइलपैथ और फ़ाइल नाम समान रहते हैं तो मुझे लगता है कि एंड्रॉइड आपके ऐप को अपडेट नहीं करता है, भले ही नई छवि एक अलग आकार है। अजीब।

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