2016-12-14 11 views
53

के भीतर से कॉल किया जा सकता है एपकोपेट 25.1.0 में अपग्रेड करने के बाद मैंने वायर्ड त्रुटियां शुरू कर दी हैं।AppCompatActivity.onCreate केवल उसी लाइब्रेरी समूह

मेरी कोड में:

AppCompatActivity.onCreate can only be called from within the same library group (groupId=com.android.support)

कैसे इस तरह के व्यवहार को रोकने के लिए:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

मैं फाहा त्रुटि मिलती है?

+6

'validateOptionateMenu()' 'supportInvalidateOptionsMenu()' के साथ 'invalidateOptionsMenu()' को प्रतिस्थापित करें। यह नौकरी –

+1

करना चाहिए मैं अपने कोड – pixel

+3

में ऐसी विधियों का उपयोग नहीं करता जैसे लगता है कि यह एक बग है: https://code.google.com/p/android/issues/detail?id=230387 –

उत्तर

48

जैसा कि फ़ेलिप पहले से ही अपने comment में इंगित करता है यह टूल के प्री-रिलीज़ संस्करण में bug है।

आप, अब के लिए यह वैकल्पिक हल कर सकते हैं जब तक गूगल एक फिक्स जारी, अपनी परियोजना के मॉड्यूल के build.gradle फ़ाइल में निम्न जोड़कर:

android { 
    lintOptions { 
    disable 'RestrictedApi' 
    } 
} 

यह ध्यान देने योग्य है कि इस के रूप में अपनी परियोजना में सही त्रुटियों छिपा सकते हैं लायक है यह उस प्रकार की सभी त्रुटियों को दबा देता है, इसलिए बेहतर विकल्प एंड्रॉइड स्टूडियो के संस्करण और प्रोजेक्ट में प्रयुक्त टूल्स को डाउनग्रेड करना होगा।

+4

मैं सुझाव दूंगा @ नीचे सीआरआर का जवाब, यह केवल विधि स्तर पर दबाता है, और यह एंड्रॉइड स्टूडियो 3 पर काम करता है, '// noinspection प्रतिबंधित प्रतिबंधित' के विपरीत। – Sakiboy

56

लिंटऑप्शन में चेतावनी को अक्षम करना अच्छा विकल्प नहीं दिखता है, यह कथन स्तर पर निरीक्षण को दबाने के लिए बेहतर है। जैसा कि पिछले प्रतिक्रियाओं पर प्रकाश डाला

//noinspection RestrictedApi 
+1

मैं इस के साथ जा रहा हूँ। मैं बेहतर समाधान हो सकता हूं कि दुनिया भर में लिंटऑप्शन को अक्षम न करें। Thx –

+2

एंड्रॉइड स्टूडियो 3 में काम नहीं करता है। क्या कुछ बदलाव थे? – vovahost

+0

यह नहीं कह सकता कि मैं अपनी सभी परियोजनाओं के लिए नवीनतम बीटा का उपयोग कर रहा हूं। और कोई समस्या नहीं मिली – Killer

45

, यह बग है:

जो चेतावनी देता है कोड की रेखा से ऊपर इस टिप्पणी जोड़ें। मैं अनुशंसा करता हूं कि विशिष्ट लिंट चेतावनी परियोजना-व्यापी को अक्षम न करें, लेकिन केवल उस विधि के लिए। निम्नानुसार अपनी विधि को एनोटेट करें:

@SuppressLint("RestrictedApi") 
@Override 
public void setupDialog(Dialog dialog, int style) { 
    super.setupDialog(dialog, style); 
    //your code here 
} 
+2

यह उत्तर सबसे अच्छा है क्योंकि यह वैश्विक रूप से अक्षम नहीं होता है, यह आईडीई में त्रुटि/चेतावनी हल करता है और संकलन समय पर, यह समझना आसान है क्योंकि यह विधि के शीर्ष पर स्पष्ट रूप से सूचीबद्ध है ('// noinspection प्रतिबंधित प्रतिबंधित 'के विपरीत एक टिप्पणी के रूप में छिपा हुआ है, और केवल आईडीई में चेतावनी को शांत करता है, लेकिन संकलन समय पर नहीं), और यह एंड्रॉइड स्टूडियो और ग्रैडल के नवीनतम संस्करण के साथ काम करता है। – Sakiboy

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