2011-03-22 14 views
5

मैंने एंड्रॉइड के लिए जावामेल एपीआई के उपयोग के साथ एक मेल क्लाइंट बनाया और ऐप एमुलेटर या डिवाइस में अच्छी तरह से चलता है ... अब मैं ग्रहण का उपयोग कर प्रोजेक्ट को निर्यात करना चाहता हूं लेकिन मुझे निम्न त्रुटियां मिलीं:एंड्रॉइड: प्रोग्रार्ड obfuscating समस्या

 Warning: org.apache.harmony.awt.datatransfer.DataProxy: can't find superclass or interface java.awt.datatransfer.Transferable 
Warning: org.apache.harmony.awt.datatransfer.NativeClipboard: can't find superclass or interface java.awt.datatransfer.Clipboard 
Warning: javax.activation.CommandInfo: can't find referenced class java.beans.Beans 
Warning: com.sun.mail.imap.protocol.IMAPSaslAuthenticator: can't find referenced class javax.security.sasl.Sasl 
Warning: com.sun.mail.imap.protocol.IMAPSaslAuthenticator: can't find referenced class javax.security.sasl.SaslClient 
Warning: com.sun.mail.imap.protocol.IMAPSaslAuthenticator: can't find referenced class javax.security.sasl.SaslException 
Warning: org.apache.harmony.awt.datatransfer.DragSourceEventProxy: can't find referenced class java.awt.Point 
Warning: org.apache.harmony.awt.datatransfer.DragSourceEventProxy: can't find referenced class java.awt.dnd.DragSourceContext 
Warning: org.apache.harmony.awt.datatransfer.DragSourceEventProxy: can't find referenced class java.awt.dnd.DragSourceEvent 

मैं देख सकते हैं javamail एपीआई java.awt और javax.security libs का उपयोग करता है ... कैसे मैं उन्हें अपने प्रोजेक्ट में जोड़ सकते हैं ताकि मैं अपने प्रोजेक्ट निर्यात और यह अंधेरा कर सकते हैं?

बहुत बहुत धन्यवाद!

अद्यतन:

मैं अपने प्रोजेक्ट में JRE पुस्तकालय आयात करने की कोशिश की और उन त्रुटियों चले गए हैं लेकिन नए लोगों को apeared:

Proguard returned with error code 1. See console 
Note: there were 4243 duplicate class definitions. 
Warning: library class com.sun.xml.internal.messaging.saaj.soap.FastInfosetDataContentHandler extends or implements program class javax.activation.DataContentHandler 
Warning: library class com.sun.xml.internal.ws.encoding.XmlDataContentHandler extends or implements program class javax.activation.DataContentHandler 
Warning: library class com.sun.xml.internal.messaging.saaj.soap.MessageImpl$1 extends or implements program class javax.activation.DataSource 
Warning: library class com.sun.xml.internal.ws.encoding.StringDataContentHandler extends or implements program class javax.activation.DataContentHandler 

मैं क्या कर सकता है?

-libraryjars <java.home>/lib/rt.jar(java/**,javax/security/**,javax/activation/**) 

आशा है कि यह मदद किसी को:: पी

उत्तर

12

सूचीबद्ध जावा वर्ग हैं

+0

यह काम करता है, लेकिन मुझे एंड्रॉइड बिल्ड स्क्रिप्ट पर कोई जानकारी नहीं मिलती है जो फ़िल्टर का समर्थन नहीं करती है। क्या आपके पास एक लिंक है? – phunehehe

+0

@phunehehe सिद्धांत में आप 'इंजेर्स' के साथ लाइन पर एंटी बिल्ड फ़ाइल एंड्रॉइड-एसडीके/टूल्स/चींटी/build.xml में फ़िल्टर जोड़ सकते हैं। जैसा कि आप वहां देख सकते हैं, यह डिफ़ॉल्ट रूप से किसी भी फ़िल्टर को परिभाषित नहीं करता है। –

4

मैं इस परियोजना में JRE पुस्तकालय जोड़ने और दस फ़ाइल proguard.cfg को यह comand जोड़कर समस्या को हल किया है एंड्रॉइड रनटाइम का हिस्सा नहीं है। स्वच्छतम समाधान उन वर्गों को हटाना होगा जो उन्हें जावामेल लाइब्रेरी से संदर्भित करते हैं, क्योंकि वे इस माहौल में कभी भी काम नहीं कर सकते हैं।

सामान्य रूप से, आप उन्हें अपने प्रोगार्ड कॉन्फ़िगरेशन में भी फ़िल्टर कर सकते हैं, लेकिन एंड्रॉइड बिल्ड स्क्रिप्ट फ़िल्टर का समर्थन नहीं करती है।

एक सरल विकल्प के रूप में आप चेतावनी को दबाने कर सकते हैं:

-dontwarn java.awt.**,javax.security.**,java.beans.** 

ProGuard तो शिकायत के बिना आगे बढ़ना होगा।

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