2014-07-03 7 views
23

मैंने एल पूर्वावलोकन को लक्षित करने वाली एक नई परियोजना बनाई है। स्टार्टर गतिविधि कि एसडीके उत्पन्न ActionBarActivity फैली हुई है, फिर भी, जब मैं नंगे हड्डी उत्पन्न गतिविधि चलाने का प्रयास है, यह निम्न अपवाद फेंकता है:थीम के साथ एक्शनबैरएक्टिविटी का उपयोग कैसे करें। सामग्री

Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity. 
      at android.support.v7.app.ActionBarActivityDelegate.onCreate(ActionBarActivityDelegate.java:110) 
      at android.support.v7.app.ActionBarActivityDelegateICS.onCreate(ActionBarActivityDelegateICS.java:57) 
      at android.support.v7.app.ActionBarActivity.onCreate(ActionBarActivity.java:99) 

मैं चारों ओर देखा है, लेकिन Theme.AppCompat.Material मौजूद प्रतीत नहीं होता है । नई सामग्री विषयों का लाभ उठाने के लिए मैं ActionBarActivity कैसे बना सकता हूं?

मेरे build.gradle:

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 'android-L' 
    buildToolsVersion '20.0.0' 
    defaultConfig { 
     applicationId 'com.sdchang.example' 
     minSdkVersion 'L' 
     targetSdkVersion 'L' 
     versionCode 1 
     versionName '1.0' 
    } 
    buildTypes { 
     release { 
      runProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
    productFlavors { 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:21.+' 
    compile 'com.mcxiaoke.volley:library:[email protected]' 
    compile 'com.google.code.gson:gson:2.2.+' 
    compile 'com.squareup.okhttp:okhttp:2.0.+' 
} 
+3

21 + के '' Theme.AppCompat' Theme.Base.AppCompat' जो फैली फैली 'जो Theme.Platform.AppCompat' फैली' एंड्रॉयड: Theme.Material 21+ डिवाइस (यानी, एंड्रॉइड एल) डिवाइस पर। – ianhanniballake

+0

बहुत धन्यवाद, यह मेरी समस्या हल हो गया। क्या आप एक उत्तर बना सकते हैं ताकि यह स्पष्ट हो? –

उत्तर

54

AppCompat V21 के लिए निर्माण Gradle में निर्भरता को बदलने की जरूरत + के Theme.AppCompat फैली Theme.Base.AppCompat जो Theme.Platform.AppCompat जो android:Theme.Material पर 21 फैली फैली हुई है। + डिवाइस (यानी, एंड्रॉइड एल) डिवाइस यदि आप AppCompat का उपयोग कर रहे हैं तो आपको Material थीम प्राप्त करने के लिए विशिष्ट कुछ भी नहीं करना चाहिए।

+2

बस एक सिर ऊपर, एसडीके-जेनरेटेड शैलियों.एक्सएमएल res/values-v21 में @android का उपयोग करता है: Theme.Material.Light। आप उस पर टिकट दर्ज करना चाह सकते हैं। –

+1

मैं बिल्कुल एक ही मुद्दे पर चल रहा हूं, और अब मैं आपके प्रस्तावित उत्तर का प्रयास करने जा रहा हूं। लेकिन यह इंगित करना चाहते हैं कि https://developer.android.com/preview/material/compatibility.html पर Google के दस्तावेज़ विशेष रूप से कहते हैं कि हमारे पास मूल्यों में अलग-अलग मूल थीम होना चाहिए-21 फ़ोल्डर ... –

+0

पुष्टि की गई: बस AppCompat विषय का उपयोग करें और v21 पर आपको सामग्री मिल जाएगी। मैं Theme.AppCompat.Light.DarkActionBar का उपयोग कर रहा हूं और v21 + के लिए Theme.Material.Light.DarkActionBar पर अपने माता-पिता का पता लगाया है। हालांकि एम्यूलेटर में मेरी एक्शनबार वास्तव में अंधेरा नहीं है, लेकिन यह सब के बाद एक पूर्वावलोकन है। मूल संरचना ध्वनि है और यह उत्तर सही है। –

3

आप

compile 'com.android.support:appcompat-v7:21.+' 
+0

दुर्भाग्यवश, यह नहीं है। 21. + पहले से ही एसडीके द्वारा उत्पन्न डिफ़ॉल्ट है। –

+0

क्या आपके पास compileSdkVersion 'android-L' है? क्या आप कृपया अपना gradle.build प्रदान कर सकते हैं? –

+0

यहां आप जाओ !!!! –

-1

निम्नलिखित थीम का उपयोग करें:।

android:theme="@style/Base.V7.Theme.AppCompat" > 
+0

यह एंड्रॉइड होना चाहिए: थीम = "@ शैली/स्टाइलनाम" और appcompat_v7 लाइब्रेरी को प्रोजेक्ट से जोड़ा जाना चाहिए। और शैलियों में .xml माता-पिता को मूल = "@ शैली/थीम.AppCompat.Light.DarkActionBar" या अपनी पसंद का –

+0

होना चाहिए प्रश्न का उत्तर दें। किसी लेखक से स्पष्टीकरण की आलोचना करने या अनुरोध करने के लिए, अपनी पोस्ट के नीचे एक टिप्पणी छोड़ दें - आप हमेशा अपनी पोस्ट पर टिप्पणी कर सकते हैं, और एक बार आपके पास पर्याप्त [प्रतिष्ठा] (http://stackoverflow.com/help/whats -प्रदर्शन) आप [किसी भी पोस्ट पर टिप्पणी कर सकते हैं] (http://stackoverflow.com/help/privileges/comment)। –

+1

@ManishDubey निश्चित रूप से मेरे उत्तर की तरह दिखता है। – EJP

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