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




android android-studio (8)

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

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

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

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


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

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


हल करें:

एक नया फ़ोल्डर मान बनाएँ-v19

इस फ़ोल्डर में एक style.xml बनाएँ

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- For actionBar n' statusbar -->
    <item name="colorPrimary">#COLOR/item>
    <item name="colorPrimaryDark">#COLOR</item>

    <!-- For items -->
    <item name="colorAccent">#COLOR</item>
</style>

और सब कुछ है :)


मैंने इसे परियोजना या मॉड्यूल के पुनर्निर्माण से हल किया।


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


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

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

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


पूर्वावलोकन देखने के लिए कृपया बिल्ड API21 का उपयोग करें। मैं मैक पर हूं और 22 निर्माण कर रहा हूं / मेरे लिए काम नहीं कर रहा है। जब मैंने 21 बनाने के लिए वापस स्विच किया, तो मैं पूर्वावलोकन देख सकता था।


एक्शनबार को टूलबार के पक्ष में बहिष्कृत किया गया है, जिसे एपीआई 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


निराशा के दिनों के माध्यम से, मुझे अंततः पता चला है कि मेरा निर्माण मॉड्यूल के निर्माण में है। मैंने 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"
}






rendering