2015-07-10 9 views
6

मैं एंड्रॉइड विकास के लिए नया हूं और मैं एंड्रॉइड स्टूडियो में एंड्रॉइड डेवलपमेंट गाइड का पालन करने की कोशिश कर रहा हूं, विशेष रूप से एक्शन बार सेट अप करने का प्रयास कर रहा हूं।Android स्टूडियो में AppCompat का उपयोग करना बंद कैसे करें?

मेरे minSdkVersion, 15 है में build:gradle कहा (मॉड्यूल: एप्लिकेशन) तो मैं के रूप में यह कहते हैं styles.xml में <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> और मैं नहीं बदल सकते है मैं, किसी भी अनुप्रयोग संगतता समर्थन लेकिन मेरे विषय का उपयोग की जरूरत नहीं होगी लगता होगा जब भी मैं इसे चलाता हूं तो यह किसी भी होलो व्हाइटआउट को मेरे ऐप को क्रैश कर देता है।

इसके अलावा, का उपयोग करते हुए इस एक मैं android:showAsAction (यह सिर्फ काम नहीं करता है) का उपयोग नहीं कर सकते हैं और बदले app:showAsAction और सभी Android समर्थन लाइब्रेरी का उपयोग करने की जरूरत है।

अग्रिम धन्यवाद।

+0

हमें उन विशिष्ट समस्याओं को दिखाएं जिन्हें आप फंस गए हैं, इसलिए हम आपकी मदद कर सकते हैं। चूंकि यह वर्तमान में खड़ा है, सहायता केंद्र के अनुसार आपका प्रश्न ऑफ-विषय है। – nhaarman

+0

यदि आप एंड्रॉइड के पुराने संस्करणों का समर्थन नहीं करना चाहते हैं तो आपको इसकी आवश्यकता नहीं होगी। आप सेटिंग्स को पुन: कॉन्फ़िगर कर सकते हैं और आपके द्वारा उपयोग किए जा रहे नवीनतम एपीआई में न्यूनतम एसडीके समर्थन सेट करना चाहिए। – Shekhar

+0

जब मैं मेनू xml और state android में कोई आइटम जोड़ता हूं: showAsAction = "ifRoom" यह एक त्रुटि फेंकता है और कहता है कि मुझे ऐप का उपयोग करना चाहिए: showAsAction जैसा कि मैं एपकोपेट लाइब्रेरी का उपयोग कर रहा हूं। लेकिन मैं एपकोपेट पुस्तकालयों का उपयोग नहीं करना चाहता हूं। मेरा न्यूनतम एसडीके संस्करण एपीआई 15 है। मैंने अपनी सभी परियोजनाओं को शुरुआत में 15 बनाने के लिए रीसेट कर दिया। –

उत्तर

8

कॉमन्सवेयर ने सही कदम प्रदान किए लेकिन मैं अभी भी लड़ा क्योंकि मेरे पास पर्याप्त जानकारी नहीं थी कि मुझे क्या करना है (एंड्रॉइड स्टूडियो और एंड्रॉइड डेवलपमेंट में नया होना)।

मैं एक ब्लॉग पोस्ट को जानकारी यहां बताते पाया और यह मेरे लिए काम किया: अपनी परियोजना से

ओपन build.gradle: https://mobiarch.wordpress.com/2015/04/17/removing-support-library-in-android-studio

यहाँ यह क्या कहते हैं (मैं कुछ अतिरिक्त मदद को शामिल किया है) है । निर्भरता अनुभाग का पता लगाएं।

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:22.0.0' 
} 

संगतता पुस्तकालय के लिए रेखा को हटाएं। उसके बाद अनुभाग इस तरह दिखना चाहिए।

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
} 

सहेजें और बंद करें।

डिफ़ॉल्ट रूप से ऐप समर्थन लाइब्रेरी से उपलब्ध एक थीम का उपयोग करता है। यह कोर एपीआई से उपलब्ध नहीं है। तो हमें इसे ठीक करने की जरूरत है। res/values/styles.xml खोलें। स्टाइल टैग इस तरह कुछ दिखाई देगा:

<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 
    <!-- Customize your theme here. --> 
</style> 

मूल एसडीके से उपलब्ध विषय पर अभिभावक को बदलें।उदाहरण के लिए:

<style name="AppTheme" parent="android:style/Theme.Holo.Light"> 
    <!-- Customize your theme here. --> 
</style> 

ऐसे app:showAsAction रूप android:showAsAction को गतिविधि एक्सएमएल फ़ाइलें में गुण का नाम बदलें।

और AppCompatActivity के बजाय Activity से अपनी गतिविधि कक्षाएं बढ़ाएं। फ़ाइल के शीर्ष पर आयात android.app.Activity आयात करने के लिए परिवर्तन करने के बाद आपको Activity पर Alt + Enter दबा देना होगा।

बदलें:

import android.support.v7.app.ActionBarActivity; 

public class DisplayMessageActivity extends ActionBarActivity { 
    . 
    . 
    . 
} 

करने के लिए: नीचे दिए गए उदाहरण देखें

import android.app.Activity; 

public class DisplayMessageActivity extends Activity { 
    . 
    . 
    . 
} 

और किसी भी अन्य गतिविधियों है कि ActionBarActivity और AppCompatActivity

फैली अंत के लिए एक ही, प्रदर्शन एक Build | Clean Project और एक वर्तमान निर्माण त्रुटियों को हल करने के लिए Build | Rebuild Project

6

चरण # 1: Theme.AppCompat से दूर अपने विषय

चरण # 2 बदलें: अपने app मॉड्यूल के build.gradle फ़ाइल में dependencies की अपनी सूची से appcompat-v7 निकालें

चरण # 3: से विरासत में नहीं करने के लिए सभी गतिविधियों को बदलें AppCompatActivity या ActionBarActivity, लेकिन इसके बजाय कुछ और से विरासत, जैसे Activity

चरण # 4: सभी मेनू संसाधनों बदलें, app: की जगह एक साफ पुनर्निर्माण (बिल्ड> स्वच्छ परियोजना) और इसके बाद के संस्करण चार चरणों

Here is a sample project स्थानीय कार्यवाही बार का उपयोग करता है से शुरू हो रहा है किसी भी सुस्त संकलन त्रुटियों को ठीक है: android:

चरण # 5 के साथ।

+1

टेम्पलेट एंड्रॉइड स्टूडियो का निर्माण क्यों नहीं करता है? जैसे ही मैं एंड्रॉइड डेवलपमेंट सबक करने के लिए आगे बढ़ता हूं, मुझे लगता है कि वे बहुत सी चीजें देखते हैं जिन्हें मैं ** getActionBar() सेट करने में सक्षम होना चाहिए। SetDisplayHomeAsUpEnabled (true); ** "मेरे ऐप को क्रैश करता है। इसके बजाय मुझे ** getSupportActionBar का उपयोग करने की आवश्यकता है() .setDisplayHomeAsUpEnabled (true); ** हालांकि (क्यों नहीं पता) मेरे पास –

+0

@JoaquimFerrer सेट किए बिना अप विकल्प निर्धारित किया गया है: "टेम्पलेट एंड्रॉइड स्टूडियो का निर्माण क्यों नहीं करता है?" - वास्तव में, यह करता है, यदि आप कम से कम एंड्रॉइड स्टूडियो 1.2.2 में 22 के 'minSdkVersion' के साथ प्रोजेक्ट बनाते हैं, तो आपको अपने इच्छित मूल्य पर 'minSdkVersion' मैन्युअल रूप से रीसेट करना होगा। हालांकि, व्यवहार का व्यवहार नया प्रोजेक्ट/नया-गतिविधि टेम्पलेट्स एंड्रॉइड स्टूडियो संस्करण द्वारा भिन्न होता है। "मुझे getSupportActionBar() सेट करने में सक्षम होना चाहिए। setDisplayHomeAsUpEnabled (true); मेरे ऐप "दुर्घटनाओं -। कि यदि आप' appcompat-v7' उपयोग नहीं कर रहे संकलन नहीं करना चाहिए का उपयोग करें 'getActionBar()' के बजाय 'getSupportActionBar()' – CommonsWare

+0

यह (मैं पहले से ही संपादित) विपरीत कार्यों खेद था लेकिन हाँ।। मैं lattest एंड्रॉयड स्टूडियो का उपयोग कर रहा हूँ, लेकिन परियोजना के निर्माण में मैं अपने 'minSdk' 15 और नहीं 22. क्या आपको लगता है मैं appcompat पुस्तकालयों का उपयोग करना चाहिए –

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