7

को हल नहीं कर सकता है इसलिए मेरी प्रोजेक्ट में मैं एक्शन बार में मानक सामग्री खोज आइकन का उपयोग कर रहा था।प्रतीक abc_ic_search_api_mtrl_alpha

<menu 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" > 
<item 
    android:id="@+id/search" 
    android:title="@string/action_search" 
    android:icon="@drawable/abc_ic_search_api_mtrl_alpha" 
    app:showAsAction="collapseActionView|ifRoom" 
    app:actionViewClass="android.support.v7.widget.SearchView" /> </menu> 

लेकिन अगर मैं 24.1.1 एंड्रॉयड स्टूडियो 23.0.1 से libreries अद्यतन का कहना है:

कि क्यों है abc_ic_search_api_mtrl_alpha प्रतीक को हल नहीं कर सकते? मैंने Google में खोज की लेकिन जवाब नहीं मिला।

उत्तर

25

मैं StackOverflow पर एक समान समस्या मिली है: error: cannot find symbol variable abc_ic_ab_back_mtrl_am_alpha

ऊपर विषय के लिए जवाब है:

संसाधन के नाम 23.2.0 समर्थन पुस्तकालय में बदल गया था।

संशोधितabc_ic_ab_back_mtrl_am_alphaabc_ic_ab_back_material

को संपादित करें: 23.2.1 में घटक के नाम वापस को abc_ic_ab_back_mtrl_am_alpha

संपादित बदला गया था: 24.0.0 में घटक का नाम बदल दिया गया था प्रति: abc_ic_ab_back_material

आपको केवल चा nge नाम abc_ic_search_api_mtrl_alphaabc_ic_ab_search_material

को यह काम करना चाहिए

अद्यतन

API वर्शन 24.2.1 और कुंजी शब्द नीचे और अधिक उपयोग के लिए।

abc_ic_search_api_material

यह काम करेंगे।

+6

abc_ic_ab_search_material काम नहीं करता – mbonnin

+1

abc_ic_search_api_material काम करना चाहिए (कम से कम 24.2.1 के लिए) – Sharpe

+0

ओएच कैमॉन! क्या Google पहले से ही अपने संसाधनों का नाम बदलना बंद नहीं करेगा .... –

1

आप वेक्टर ड्रॉबल्स के रूप में 'बैक' और 'सर्च' सामग्री आइकन आयात कर सकते हैं।

राइट क्लिक करें res/drawable ->New ->vector asset

फिर आप drawable DrawableCompat.setTint का उपयोग करने का रंग अनुकूलित कर सकते हैं()। न केवल यह अधिक लचीला है बल्कि भविष्य में समर्थन पुस्तकालयों के अपडेट में भी कोई ब्रेक नहीं होगा।

+0

हाँ, मैंने वेक्टर संपत्ति का उपयोग शुरू किया लेकिन मैंने देखा कि सभी आइकन एंड्रॉइड 4.0 (आईसीएस) पर काले हैं। यहां तक ​​कि अगर मैंने रंग को सफेद में बदल दिया –

+0

'DrawableCompat.setTint (drawable.mutate(), color.WHITE)' काम करना चाहिए। है ना? – mbonnin

+0

आप इस एक्सएमएल फ़ाइल को ड्रायबल फ़ोल्डर में संशोधित करके आसानी से रंग बदल सकते हैं: एंड्रॉइड में बदलें: fillColor = "# FFFFFFFF"। –

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