java - प्रतिपादन के दौरान एंड्रॉइड स्टूडियो एसडीके संस्करण 22 अपवाद: action_bar




android android-studio (7)

एक्शनबार को टूलबार के पक्ष में बहिष्कृत किया गया है, जिसे एपीआई 21 में जोड़ा गया था। हालांकि, एंड्रॉइड स्टूडियो के टेम्पलेट्स के लिए बेस थीम अभी भी एक्शनबार आधारित थीम का उपयोग करने लगता है।

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

आपका बेस थीम एंड्रॉइडमैनीफेस्ट.एक्सएमएल में एप्लीकेशन / एंड्रॉइड के तहत सूचीबद्ध है: थीम।

Res / values ​​/ styles.xml पर जाएं और पैरेंट विशेषता को एक अलग बेस थीम में बदलें जो बहिष्कृत एक्शनबार पर भरोसा नहीं करता है। संभावना नहीं है कि आपका ऐप एपीआई 21+ है, आप थीम.मटेरियल का उपयोग कर सकते हैं। अन्यथा, आपको Theme.AppCompat.NoActionBar का उपयोग करने या अपनी खुद की मूल थीम को परिभाषित करने की आवश्यकता होगी।

यहां एक शैलियों। Xml उदाहरण है:

<style name="AppTheme.Base" parent="Theme.AppCompat">
    <item name="colorPrimary">@color/colorPrimary</item>
    <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
    <item name="android:windowNoTitle">true</item>
    <item name="windowActionBar">false</item>
</style>

यदि आप इसका उपयोग करते हैं, तो अपने एक्सएमएल लेआउट में टूलबार तत्व डालना सुनिश्चित करें जहां आप एक्शनबार दिखाना चाहते हैं। आपको बाल एक्सएमएल टैग के साथ टूलबार को कस्टमाइज़ करना होगा। मैं <include> टैग का उपयोग करने की सलाह देता हूं। जैसा कि यह टूलबार दस्तावेज़ में कहता है, Google के नए डिज़ाइन सिद्धांत दृश्य शैली में बदलाव के लिए कहते हैं:

आधुनिक एंड्रॉइड यूआई में डेवलपर्स को अपने एप्लिकेशन आइकन की तुलना में टूलबार के लिए एक दृष्टि से अलग रंग योजना पर अधिक दुबला होना चाहिए। मानक लेआउट के रूप में एप्लिकेशन आइकन प्लस शीर्षक का उपयोग एपीआई 21 उपकरणों और नए पर निराश है।

android.support.v7.widget.Toolbar प्री-एपीआई 21 डिवाइस के लिए समर्थन लाइब्रेरी में है।

संपादित करें: जैसा कि पहली टिप्पणी बताती है, Google के पास एक ब्लॉग है जो नए टूलबार का उपयोग करने का तरीका बताता है। http://android-developers.blogspot.kr/2014/10/appcompat-v21-material-design-for-pre.html

जब मैं एंड्रॉइड स्टूडियो पर एक नई परियोजना तैयार करता हूं तो यह कोई समस्या नहीं दे रहा है। हालांकि, activity_main.xml डिज़ाइन को देखते हुए यह मुझे दिखाता है:

प्रतिपादन के दौरान उठाए गए समस्याएं प्रस्तुत करना: action_bar।

जब मैं डिजाइन पेज से एसडीके स्तर 22 से 21 बदलता हूं एंड्रॉइड स्टूडियो कुछ भी नहीं दिखाता है

इस समस्या का समाधान किस प्रकार से किया जा सकता है? यह महत्वपूर्ण समस्या नहीं है लेकिन मुझे आश्चर्य हुआ कि मैं इसे कैसे ठीक कर सकता हूं।


निराशा के दिनों के माध्यम से, मुझे अंततः पता चला है कि मेरा निर्माण मॉड्यूल के निर्माण में है। मैंने buildToolsVersion को 22 से 21.1.2 बदल दिया है buildToolsVersion आपके जैसे सटीक अपवाद को ठीक से हल किया जा सके। ऐसा लगता है कि API 22: Android 5.1 साथ कुछ भी करना है API 22: Android 5.1 इस समय हिचकी दे रहा है। उम्मीद है कि Google जल्द ही इसे ठीक करेगा।

Build.gradle में इन पंक्तियों को बदलना मुझे इस समस्या के लिए एक त्वरित समाधान दिया:

android {
    compileSdkVersion 21
    buildToolsVersion "21.1.2"
}

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

कुछ ग्रेड सुझावों के अनुसार आपकी ग्रेडल फ़ाइलों को अपडेट करने या शैलियों को बदलने की कोई आवश्यकता नहीं है।

कामकाज एक बार परियोजना का निर्माण करना है और फिर कैश को साफ़ करके प्रतिपादन को रीफ्रेश करना है। रीफ्रेश आइकन के लिए संलग्न छवि देखें जो कैश को साफ़ करता है।


मैंने buildToolsVersion "21.1.2" को build.gradle (मॉड्यूल: ऐप) पर बदलकर इसे ठीक किया है,

buildToolsVersion "22" उपयोग न करें


यह जवाब मेरे लिए काम किया:

MyActivity extends AppCompatActivity

के बजाय:

MyActivity extends ActionBarActivity   // now deprecated

अपने पूर्वावलोकन पर वापस जाएं, कैश साफ़ करें और रीफ्रेश करें!


यह पता चला है कि आप buildToolsVersion "22" या targetSdkVersion 22 उपयोग नहीं कर सकते क्योंकि यह ठीक से प्रस्तुत करने में विफल रहता है। ऐसा लगता है कि यह केवल एपीआई को प्रस्तुत कर सकता है जब इस समय एपीआई 21 या कम हो जाता है क्योंकि मुझे वही त्रुटि मिल रही थी और जैसे ही मैंने इसे 21 में बदल दिया, फिर से काम करना शुरू कर दिया। बस build.gradle (मॉड्यूल: ऐप) में जाएं और एपीआई को एपीआई 21 के नवीनतम संस्करण में बदलें।


हाँ बस ड्रॉप डाउन में एंड्रॉइड स्तर को समायोजित करना पड़ा। एपीआई स्तर 22 में डिज़ाइन टैब पूर्वावलोकन अभी टूट गया है। मैंने देखा कि त्रुटि के लिए स्टैक ट्रेस और अल्फा चैनल की आवश्यकता के साथ इसमें कुछ करना है। मुझे यकीन है कि Google इसे सोमवार को ठीक करेगा। :)








rendering