2011-12-30 12 views
14

हाय और मैं आयात करने के लिए, लेकिन im हो रही त्रुटिआयात com.android.internal.R मैं इशारों से काम कर रहा हूँ हल नहीं किया जा सकता है

com.android.internal.R; 

आयात com.android.internal.R हल नहीं किया जा सकता है की जरूरत है

कृपया मेरी मदद करो, कृपया

+0

कैसे त्रुटि को सहारा दिया? क्या आपने प्रोजेक्ट सेटअप में कुछ भी बदल दिया है या मैन्युअल रूप से नई फाइलें जोड़ दी हैं? यदि हां, तो परियोजना को साफ करने और इसे फिर से बनाने का प्रयास करें। – Ahmed

उत्तर

3

सबसे पहले, जेस्चर क्या है? क्या आपके पास अपने जेन फ़ोल्डर में com.android.internal नामक एक पैकेज है? क्या इसमें आरजावा है? यदि नहीं, तो परियोजना-> ग्रहण में साफ करें। यदि यह अभी भी काम नहीं करता है, तो आपको अपनी एक्सएमएल लेआउट फाइलों में एक त्रुटि हो सकती है।

36

आप नहीं कहते कि आपको com.android.internal.R तक पहुंच की आवश्यकता क्यों है, लेकिन दुखद तथ्य यह है कि आप इसे आयात नहीं कर सकते हैं ("आंतरिक" एक संकेत है कि यह सार्वजनिक एपीआई का हिस्सा नहीं है)। Google इसका खुलासा नहीं करता क्योंकि यह परिवर्तन के अधीन है।

Resources.getSystem() पर कॉल करके आंतरिक संसाधनों को प्राप्त करना संभव है। एक विशेष संसाधन पहचानकर्ता के मूल्य पाने के लिए आपको अपने नाम पता और उसके बाद मूल्य को खोजने के लिए निम्नलिखित की तरह कोड का उपयोग करने के लिए है:

Resources res = Resources.getSystem(); 
int id = res.getIdentifier("resource name", "resource type", "android"); 

ध्यान रखें कि किसी भी नाम है कि आप एंड्रॉयड के भविष्य के संस्करणों में गायब हो सकता का उपयोग ।

1) सुनिश्चित करें कि आप आर से संबंधित त्रुटियों के अलावा अन्य किसी भी अन्य त्रुटियों न करना पड़े:

+0

आपकी प्रतिक्रिया के लिए धन्यवाद! मैं इस आइटम को संसाधन आईडी कैसे प्राप्त कर सकता हूं? '' 'आइटम प्रकार =" आईडी "नाम =" स्विच_विजेट "/> ' ' – nAkhmedov

+0

@nAkhmedov - आपका प्रश्न अस्पष्ट है। जो आपने दिखाया है वह एक आईडी आईडी संसाधन परिभाषा है, जिसे आप कोड में 'R.id.switch_widget' के रूप में संदर्भित कर सकते हैं। क्या आपके मन में कुछ और है? –

5

मैं एक जोड़े को सुझाव हैं। ग्रहण, एंड्रॉइड टूल्स -> प्रोजेक्ट गुणों को ठीक करें में अपने प्रोजेक्ट फ़ोल्डर पर राइट-क्लिक करें।

2) यह सुनिश्चित करने के लिए जांचें कि आपके पास सही आर आयात किया गया है। कभी-कभी डिफ़ॉल्ट एंड्रॉइड.आर आयात किया जा सकता है।

4

हाँ आप कुछ गंदे चाल (गंदे चाल = जावा प्रतिबिंब) के साथ आंतरिक आर का उपयोग कर सकते हैं।

बस एक उदाहरण:

Class clasz = Class.forName("com.android.internal.R$styleable") 
Field field = clasz.getDeclaredField("TextAppearance"); 
field.setAccessible(true); 
int[] textAppearanceStyleArr = (int[])field.get(null); 

field = clasz.getDeclaredField("TextAppearance_textSize"); 
field.setAccessible(true); 
int textSizeStyle = (Integer)field.get(null); 
+0

प्रतिबिंब के माध्यम से आंतरिक एपीआई एक्सेस करना समर्थित नहीं है और भविष्य में सभी उपकरणों या भविष्य में काम नहीं कर सकता है! –

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