2011-06-16 13 views
18

Ben android telefon uygulamasında bir e-posta gönderme uygulaması yapıyorum. Bunun için iki kavanoz dosyası activation. jar ve mail.jar'u ekledim. Ancak bu uygulamayı çalıştırdığımda ve postayı göndermeye çalıştığımda, LogCat numaralı hatayı takip ediyorum.java.lang.NoClassDefFoundError: javax.activation.DataHandler android

java.lang.NoClassDefFoundError: javax.activation.DataHandler 

Ben android için yeni. bu yüzden bu sorunu çözemiyorum. Lütfen bana yardım et. Teşekkürler

+0

DataHandler sınıfı sayesinde Mark Hey ... additional.jar dahil değildi – ngesh

cevap

58

Kullanmanız gereken bir Android-friendly port of javamail var. Uygulamanıza eklemeniz gereken üç kitaplık vardır: mail.jar, activation.jar ve additionnal.jar (sic). Etkinleştirme kitaplığının bağlı olduğu bir şey eksik gibi görünüyor ve bu, bu kitaplığın Android bağlantı noktasını kullanmadığınız için olabilir.

Bir projede javamail'in Android uyumlu sürümünü başarıyla kullandım ve gerçekten iyi çalışıyor.

+8

ithal var. Desteğiniz için teşekkürler –

+3

Ek.jar dosyasını ekledim ama aynı hata geliyor. –

+1

activation.jar ve ek.jar dosyalarını eklemiyordum – Nabin

5

JavaMail API Reference Implementation sürüm 1.5.5 ve üstü, Android desteği için oluşturulmuştur ve OAuth2 desteğini içerir. belgelere Başına

:

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 ile başlayan:

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

İlgili konular