मुझे @StringDef समर्थन एनोटेशन के साथ समस्याएं आ रही हैं। जब वे पुस्तकालय में हैं, वे पूरी तरह से ठीक काम करते हैं (एक .aar फ़ाइल नहीं), लेकिन जब मैं लाइब्रेरी को .aar फ़ाइलों के रूप में संकलित करता हूं और उन्हें किसी अन्य प्रोजेक्ट में उपयोग करने का प्रयास करता हूं, तो एनोटेशन लागू नहीं होते हैं।एंड्रॉइड सपोर्ट एनोटेशन @StringDef एक .aar फ़ाइल में निर्यात किए जाने पर काम नहीं कर रहा है
http://tools.android.com/tech-docs/support-annotations
खंड "अपनी खुद की पुस्तकालयों में टिप्पणियों का उपयोग करने" के अंतर्गत यह
कहते हैं आप इन टिप्पणियों के साथ अपने स्वयं के पुस्तकालयों व्याख्या करते हैं, और Gradle का उपयोग एक आर विरूपण साक्ष्य के निर्माण के लिए है, तो निर्माण समय एंड्रॉइड ग्रैडल प्लगइन एनोटेशन जानकारी निकाल देगा और इसे आपकी लाइब्रेरी के ग्राहकों द्वारा उपयोग के लिए आपके एएआर फाइल के अंदर भेज देगा। आप एएआर के अंदर annotations.zip फ़ाइल को देख सकते हैं जहां जानकारी दर्ज की जाती है; यह इंटेलिजे के बाहरी एनोटेशन एक्सएमएल प्रारूप का उपयोग कर रहा है। यह आवश्यक है क्योंकि .class फ़ाइलों में उपरोक्त @IntDef जानकारी को संभालने के लिए एनोटेशन के बारे में पर्याप्त जानकारी नहीं हो सकती है; ध्यान दें कि हमें निरंतर संदर्भ का रिकॉर्ड करने की आवश्यकता है, न कि इसके मूल्य। एंड्रॉइड ग्रैडल प्लगइन बिल्ड के हिस्से के रूप में एक्स्ट्रा एनोटेशन कार्य चलाएगा यदि (और केवल अगर) आपकी परियोजना एनोटेशन सपोर्ट लाइब्रेरी पर निर्भर करती है। (ध्यान दें कि एक मात्र स्रोत प्रतिधारण एनोटेशन .aar फ़ाइल में रखा जाता है;। श्रेणी स्तर retentions classes.jar में रखा जाता है)
मैं .aar फ़ाइल को खोल दिया और अंदर वहाँ annotations.zip है फ़ाइल, और यदि मैं इसे निकालने के लिए, एक एक्सएमएल फ़ाइल है जिसमें सभी सही एनोटेशन हैं।
मैं @Retention(RetentionPolicy.SOURCE)
उपयोग कर रहा हूँ के रूप में यह कहता है कि मैं
एप्लिकेशन है कि मैं के रूप में .aar फाइलों में इन उपयोग करने के लिए समर्थन पुस्तकालय compile 'com.android.support:support-annotations:23.1.1
क्या बजे पर निर्भरता है कोशिश कर रहा हूँ की जरूरत है मुझे ये काम करने में याद आ रही है?
संपादित करें: मैंने दो बार जांच की है कि इन्हें .aar फ़ाइलों के रूप में उपयोग करने वाली परियोजना में एनोटेशन प्रोसेसर चालू है।
"एनोटेशन लागू नहीं किए गए" के साथ आपका क्या मतलब है? –
जब मैं उस विधि का उपयोग करता हूं जिस पर एनोटेशन होता है, और मैं एनोटेटेड मान का उपयोग नहीं करता हूं, तो इसे लाल रंग में चिह्नित करना चाहिए और मुझे संकलन से रोकना चाहिए। E.G. कुछ हैलो बनाम "हैलो" बनाम HELLO_CONSTANT।यह तब काम करता है जब लाइब्रेरी को सीधे प्रोजेक्ट में संकलित किया जाता है, लेकिन जब .aar फ़ाइलों के रूप में उपयोग नहीं किया जाता है – Ben987654
गलत छवि का उपयोग किया जाने पर यह कैसा दिखना चाहिए - https: // 0d9321c1-a-db1c6dfe-s-site। googlegroups.com/a/android.com/tools/tech-docs/support-annotations/image06.png?attachauth=ANoY7cqTSb17QuPBLDWr4tzSd8PWqymMcqHTUdoW1VD-jKQ6m8DAG3jhcVWkDniYH72V9mV2ZNZUfnH2KXgUOZumtywXOq9v_BK42ub6taGLV2UZ4b4QhTN7pflf130U4DVEu-L5VSH7kUXtWb5RFRIBCT5vc9nmYNsbKWVB5tKqFqj7TiYIPvkyDWpLFmu1eUjFgkjVrt1grDcsR5RdXe4IeV9AMuVT9nFp6nxSaVDcQ0kWRy2fizQ%3D&attredirects=0 – Ben987654