2015-01-13 5 views
0

Я портирую свое приложение Swing на Android. Я использую mail.jar и безопасную iNet-фабрику iNet (sinetfactory.jar) для поддержки FTP/SFTP/SSH в моем приложении swing.Android Studio Gradle javax.mail activation.jar проблема зависимости

И mail.jar, и sinetfactory.jar используют структуру активации java (activation.jar), которая имеет зависимости java.awt. Версия android версии mail.jar и activation.jar изменена, чтобы удалить эту зависимость от java.awt.

Когда я добавляю андроид mail.jar, activation.jar и sinetfactory.jar к моему проекту Android студии, я получаю следующее сообщение об ошибке:
Неожиданное исключение TOP-LEVEL:
com.android.dex.DexException: Multiple файлы dex определяют Lcom/sun/активация/реестры/LineTokenizer;

Эта же ошибка имеет topic on StackOverflow, но не относится к моей ситуации. Эта тема, похоже, была проблемой Gradle. Мои проблемы в том, что у меня есть 2 библиотеки с одинаковой зависимостью (инфраструктура активации). Мне нужно использовать обе версии activ.jar. т. е. mail.jar нуждается в модифицированной версии android.jar для андроида, тогда как sinetfactory.jar требуется исходная java-версия activ.jar.

Каковы мои варианты решения этой проблемы? Можно ли это сделать с помощью некоторой настройки градуировки?

ответ

1

Попробуйте использовать его

android { 

    packagingOptions { 
     exclude 'META-INF/DEPENDENCIES.txt' 
     exclude 'META-INF/LICENSE.txt' 
     exclude 'META-INF/NOTICE.txt' 
     exclude 'META-INF/NOTICE' 
     exclude 'META-INF/LICENSE' 
     exclude 'META-INF/DEPENDENCIES' 
     exclude 'META-INF/notice.txt' 
     exclude 'META-INF/license.txt' 
     exclude 'META-INF/dependencies.txt' 
     exclude 'META-INF/LGPL2.1' 
    } 

    defaultConfig { 

     // Enabling multidex support. 
     multiDexEnabled true 
    } 
} 

compile 'javax.mail:javax.mail-api:1.5.3' 
Смежные вопросы