2011-06-16 15 views
18

मैं एंड्रॉइड फोन में एक ईमेल भेजने का आवेदन कर रहा हूं। इसके लिए मैंने दो जार फ़ाइल activation. jar और mail.jar शामिल की थी। लेकिन जब मैं इस एप्लिकेशन को चलाता हूं और मेल भेजने का प्रयास करता हूं, तो मुझे LogCat पर निम्न त्रुटि मिली।java.lang.NoClassDefFoundError: javax.activation.DataHandler एंड्रॉइड

java.lang.NoClassDefFoundError: javax.activation.DataHandler 

मैं एंड्रॉइड के लिए नया हूं। तो मैं इस मुद्दे को समझने में सक्षम नहीं हूं। क्रिप्या मेरि सहायता करे। धन्यवाद

+0

DataHandler वर्ग – ngesh

उत्तर

58

एक Android-friendly port of javamail है जिसका उपयोग आप करना चाहिए। तीन पुस्तकालय हैं जिन्हें आपको अपने ऐप में शामिल करने की आवश्यकता है: mail.jar, activation.jar, और extranal.jar (sic)। ऐसा लगता है कि आप कुछ खो रहे हैं कि सक्रियण लाइब्रेरी पर निर्भर करता है, और ऐसा इसलिए हो सकता है क्योंकि आप इस लाइब्रेरी के एंड्रॉइड पोर्ट का उपयोग नहीं कर रहे हैं।

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

+8

अरे धन्यवाद मार्क ... मैं additional.jar सहित नहीं किया गया था आयात किया है। समर्थन –

+3

के लिए धन्यवाद मैंने अतिरिक्त .jar फ़ाइल शामिल की है लेकिन एक ही त्रुटि आती है। –

+1

मैं सक्रियण सहित नहीं था .jar और extra.jar फ़ाइलें – Nabin

5

JavaMail API Reference Implementation संस्करण 1.5.5 और बाद में Android के लिए समर्थन में बनाया गया है और OAuth2 के लिए समर्थन शामिल है।

प्रलेखन के अनुसार:

Android does not provide a Java Compatible runtime and so can't run the standard JavaMail distribution. Instead, a special version of JavaMail is available for Android. This special version of JavaMail depends on a special version of the JavaBeans Activation Framework.

You can try out this version by adding the following to your build.gradle file for your Android application:

android { 
    packagingOptions { 
     pickFirst 'META-INF/LICENSE.txt' // picks the JavaMail license file 
    } 
} 

repositories { 
    jcenter() 
    maven { 
     url "https://maven.java.net/content/groups/public/" 
    } 
} 

dependencies { 
    compile 'com.sun.mail:android-mail:1.5.5' 
    compile 'com.sun.mail:android-activation:1.5.5' 
} 

JavaMail 1.6.0 के साथ शुरू:

JavaMail for Android requires at least Android API level 19, which corresponds to Android KitKat, currently the oldest supported version of Android.

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