सारांशत्रुटि 'कॉल एपीआई स्तर 23 की आवश्यकता है', लेकिन getForeground() API 1
अंत से FrameLayout पर मौजूद है, मैं संबंधित समस्या, setForeground()
गलत तरीके से FrameLayout
विस्तार ViewGroups पर एपीआई 23 की आवश्यकता होती है के रूप में चिह्नित पाया।
आप FrameLayout
का विस्तार नहीं कर रहे हैं, प्रलेखन गलत है और एपीआई 23 की आवश्यकता है।
Issue 186273: View.setForeground wrong API level
अपडेट किया गया प्रश्न
duplicated of Can't use setForeground
method on ImageView Commonsware द्वारा के रूप में चिह्नित है और उसके द्वारा उत्तर दिया:
एक प्रलेखन बग है कि। setForeground() API स्तर 1 से FrameLayout पर मौजूद था; यह एपीआई स्तर 23.
मेरे मामले में प्रलेखन बग कांटा में निरीक्षण नहीं पहचान पातीं के रूप में देखें पर ही है लेकिन एक एकीकरण परियोजना में यह होता है, मैं इसे वैसे भी, इस समझ में नहीं आता, मेरे प्रारंभिक प्रश्न का उत्तर दें।
लेकिन यह वही मामला नहीं है, इस कोड को पहले से ही एक Framelayout
का विस्तार और इस पद्धति का उपयोग किया जाता है, यह एक ImageView
नहीं है, तो मैं विधि एपीआई 23. में हटा दिया गया है यह संदर्भ में अब प्रकट नहीं होता लगता है।
अद्यतन: मैं FrameLayout के लिए एक diff report जोड़ें:
नए सवाल
तो पिछले संस्करणों में विधि का उपयोग करने के लिए, और मेरे सवाल का परिवर्तन, क्यों करता है निरीक्षण त्रुटि को चुनिंदा रूप से प्रकट करें?
मैं एक निरर्थक डाली जोड़ते हैं, तो त्रुटि संदेश गायब हो जाता है:
((FrameLayout) layout).getForeground()
लेकिन यह View
विधि है कि अब समर्थित नहीं है तक पहुँचने है।
तो मैं पिछले एक एपीआई को लक्षित मान लें कि त्रुटि संदेश को दूर होगा, लेकिन मैं इस Framelayout विधि या एक सुराग उपयोग करने के लिए मेरे मामले में इस मुद्दे को ठीक करने के लिए एक समाधान का स्वागत करेंगे:
ANDROID_COMPILE_SDK_VERSION=23
ANDROID_BUILD_TOOLS_VERSION=23.0.1
ANDROID_DEFAULT_MIN_SDK_VERSION=19
ANDROID_DEFAULT_TARGET_SDK_VERSION=23
वर्कअराउंड
संक्षेप में, एक कामकाज के रूप में, मैंने टाइप को FrameLayout
पर सीधे बदल दिया, इसलिए एपीआई और कास्टिंग के बारे में चेतावनियां चली गईं, और मैंने परीक्षण किया कि यह एंड्रॉइड 4.4.4 डिवाइस और डिबगिंग पर काम करता है, मैंने सोचा कि यह दुर्घटनाग्रस्त हो जाएगा, वैसे भी इसका उपयोग केवल एक एनीमेशन में, और मैं इसे भविष्य में ठीक/बदल दूंगा।
प्रारंभिक सवाल
मैं काँटेदार और गूगल नमूना android-topeka अनुकूलित, और एंड्रॉयड स्टूडियो एक त्रुटि है कि मैं android.view
में वर्ग View
की विधि getForeground()
उपयोग करने की आवश्यकता एपीआई स्तर के बारे में समझ में नहीं आता से पता चलता पैकेज: android.view.View # getForeground
कॉल की आवश्यकता है एपीआई स्तर 23 (वर्तमान मिनट 19 है)
reference निशान विधि एपीआई स्तर 1 में जोड़ा के रूप में, और प्रलेखन (
Control+Q
) एक ही पता चलता है:लेकिन
Calling new methods on older versions inspection
एक त्रुटि है कि एपीआई स्तर 23 की आवश्यकता है पता चलता है:मुझे उस मामले में एक बग similar question मिला, लेकिन मुझे लगता है कि मूल कांटा के कारण यह कोई बग नहीं है यह त्रुटि नहीं दिखाती है संदेश।
मैं पहली बार संदेश प्रकट होने का पता लगाने की कोशिश करूंगा, लेकिन मैंने बहुत सारे बदलाव किए हैं, इसलिए किसी भी सुराग की सराहना की जाएगी, धन्यवाद।
तो तुम यह पता लगाने की थी कि हम कैसे मिलता है या एपीआई 23 नीचे उपकरणों के लिए अग्रभूमि सेट कर सकते हैं? –
यदि आप फ़्रेमलेआउट को विस्तारित कर रहे हैं, तो आप एक अनावश्यक कास्ट का उपयोग कर सकते हैं या प्रलेखन बग से बचने के लिए प्रकार को फ्रेमलेआउट में बदल सकते हैं। अन्यथा, यह संभव नहीं है, लेकिन हो सकता है कि अगला वर्कअराउंड आपके लिए उपयोगी हो http://stackoverflow.com/a/33201753/1009132 – albodelu
सहायता के लिए धन्यवाद। –