java.lang.NoClassDefFoundError: javax.activation.DataHandler в android

Я делаю приложение отправки электронной почты в телефоне android. Для этого я включил две activation. jar файла jar activation. jar activation. jar и mail.jar . Но когда я запускаю это приложение и пытаюсь отправить почту, я получил следующую ошибку в LogCat .

 java.lang.NoClassDefFoundError: javax.activation.DataHandler 

Я новичок в android. поэтому я не могу понять эту проблему. пожалуйста помогите. благодаря

Существует Android-порт javamail, который вы должны использовать. В вашем приложении должны быть три библиотеки: mail.jar, activation.jar и addnal.jar (sic). Похоже, что у вас отсутствует то, от чего зависит библиотека активации, и это может быть связано с тем, что вы не используете порт Android этой библиотеки.

Я успешно использовал версию javamail для Android в проекте, и она работает очень хорошо.

JavaMail API Reference Version 1.5.5 и более поздние версии встроены в поддержку Android и include поддержку OAuth2 .

По документации:

Android не обеспечивает совместимую с Java время исполнения и поэтому не может запускать стандартный дистрибутив JavaMail. Вместо этого для Android доступна специальная версия JavaMail. Эта специальная версия JavaMail зависит от специальной версии JavaBeans Activation Framework.

Вы можете попробовать эту версию, добавив следующее в свой файл build.gradle для вашего приложения для Android:

  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 для Android требуется, по крайней мере, Android API уровня 19, что соответствует Android KitKat, которая в настоящее время является самой старой поддерживаемой версией Android.

  • Включение WiFi в эмулятор Android
  • smoothScrollToPositionFromTop () не всегда работает так, как должно
  • Как отключить звуковые эффекты по умолчанию для всех моих приложений или действий
  • Разница между событием OnClick () и OnClickListener?
  • TextWatcher для нескольких EditText
  • Как проверить доступ в Интернет на Android? InetAddress никогда не выбегает
  • Android: Как GridView auto_fit находит количество столбцов?
  • Google firebase проверяет, существует ли ребенок
  • Как выполнять задачу Async повторно после фиксированных интервалов времени
  • Добавьте «Просмотреть больше» в конце текстового просмотра после трех строк
  • Скрыть системную панель в планшетах
  • Interesting Posts

    Имя classа Java, содержащее знак доллара, не может быть скомпилировано, если присутствует внутренний class

    Возможно ли в принципе для Android-устройства взаимодействовать с iPhone через Bluetooth / GameKit?

    Почему размер логического примитива Java не определен?

    Как сделать redirect в JSF

    SVG-анимация не работает на IE11

    Синхронизированный блок Java для .class

    Граница CSS hover делает встроенные элементы слегка настраиваемыми

    Windows 7 ПК больше не идет в режим энергосбережения

    Серийный class, содержащий член словаря

    Рассчитать расстояние, заданное двумя точками, широтой и долготой

    Пользовательская кнопка, не работающая с mac (ButtonUI)

    Отключить кеш браузера для всего веб-сайта ASP.NET

    Примеры шаблонов проектирования GoF в основных библиотеках Java

    HTTP не смог зарегистрировать URL http: // +: 8000 / HelloWCF /. У вашего процесса нет прав доступа к этому пространству имен

    Добавление контекстного пути в приложение Spring Boot

    Давайте будем гением компьютера.