2017-10-30 30 views
12

पर समर्थन लाइब्रेरी को अपडेट करने के बाद मेरे खंडों में एकाधिक त्रुटियां v-26.1.0 से v-27.0.0 तक समर्थन लाइब्रेरी को अपडेट करने के बाद मेरे टुकड़ों में एकाधिक त्रुटियां। खाली टुकड़ा के लिए एंड्रॉयड स्टूडियो टेम्पलेट सेसमर्थन पुस्तकालय को 27.0.0

Error: Smart cast to 'Bundle' is impossible, because 'arguments' is a mutable property that could have been changed by this time.

Error: 'onCreateView' overrides nothing

Error: 'onViewCreated' overrides nothing

Error: Type mismatch: inferred type is View? but View was expected

Error: Type mismatch: inferred type is Context? but Context was expected

Error: Type mismatch: inferred type is FragmentActivity? but Context was expected

Error: Type mismatch: inferred type is FragmentActivity? but Context was expected

:

यहाँ एक कुछ इन त्रुटियों की सूची है।

override fun onCreate(savedInstanceState: Bundle?) { 
    super.onCreate(savedInstanceState) 
    if (arguments != null) { 
     mParam1 = arguments.getString(ARG_PARAM1) 
     mParam2 = arguments.getString(ARG_PARAM2) 
    } 
} 

override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? { 
    return inflater!!.inflate(R.layout.fragment_blank, container, false) 
} 

override fun onViewCreated(view: View?, savedInstanceState: Bundle?) { 
    super.onViewCreated(view, savedInstanceState) 
} 
+0

कृपया उदाहरण कोड दिखाएं जो इन त्रुटियों का कारण बनता है। नया कोड उदाहरण बनाने के बारे में युक्तियों के लिए [mcve] देखें। –

उत्तर

25

इन त्रुटियों के सभी के मूल कारण है कि समर्थन पुस्तकालय में वी-27.0.0 @Nullable और @NonNull एनोटेशन जोड़ दिया गया है है।
और चूंकि कोटलिन भाषा शून्यता के बारे में पता है और जावा के विपरीत Nullable और NonNull के लिए एक अलग प्रकार है।
इन एनोटेशन के बिना, कंपाइलर के बीच अंतर करने का कोई तरीका नहीं है, और एंड्रॉइड स्टूडियो सही प्रकार का अनुमान लगाने के लिए अपनी पूरी कोशिश कर रहा था।

टीएल; डीआर: प्रकारों को सही ढंग से शून्यता स्थिति को प्रतिबिंबित करने के लिए बदलें।


Error: Smart cast to 'Bundle' is impossible, because 'arguments' is a mutable property that could have been changed by this time.

परिवर्तन arguments.getString(ARG_NAME) ==>arguments?.getString(ARG_NAME) ?: ""


Error: 'onCreateView' overrides nothing

चने:

override fun onCreateView(inflater: LayoutInflater?, container: ViewGroup?, savedInstanceState: Bundle?): View? 

==>

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? 

Error: 'onViewCreated' overrides nothing

परिवर्तन:

override fun onViewCreated(view: View?, savedInstanceState: Bundle?) 

==>

override fun onViewCreated(view: View, savedInstanceState: Bundle?) 

Error: Type mismatch: inferred type is Context? but Context was expected

संदर्भ विधि के लिए तर्क के रूप में पारित कर दिया जाता है, जू getContext() को
के साथ प्रतिस्थापित करने के लिए त्वरित फिक्स का उपयोग करें, यह कोटलिन लघु संस्करण context पर लागू होता है।

बाकी

यदि कॉल करने के लिए कुछ विधि getContext()?.someMethod()

ही साथ getContext().someMethod() की जगह प्रयोग किया जाता है kotlin लघु संस्करण context?.someMethod() पर लागू होता है।


Error: Type mismatch: inferred type is FragmentActivity? but Context was expected

पिछले त्रुटि के ठीक का उपयोग करें।

+3

'? जोड़ना{} 'एक टुकड़े की गतिविधि के लिए मुझे इसे विधि के तर्क के रूप में उपयोग करने की अनुमति नहीं देता है। त्रुटि 'टाइप मिस्चैच है: अनुमानित प्रकार FragmentActivity है? लेकिन संदर्भ की उम्मीद थी '। क्या ऐसा करने के लिए कोई और है? इसके अलावा, जब मैं 'कैशडियर' तक पहुंचने का प्रयास करता हूं, उदाहरण के लिए, मुझे एक और मिलता है: 'फ्रैगमेंट एक्टिविटी' को स्मार्ट कास्ट असंभव है, क्योंकि 'गतिविधि' एक ऐसी संपत्ति है जिसमें खुली या कस्टम गेटर है। अभी भी यह पता लगाना है कि इसे कैसे हल किया जाए। –

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