使用Gradle引用JavaMail for Android
1,AndroidStudio使用gradle如何引用javaMail for Android ?
官方链接:https://javaee.github.io/javamail/Android
Android 版本要求:JavaMail for Android requires at least Android API level 19
官方提供依赖配置(调整了顺序):
repositories { jcenter() maven { url "https://maven.java.net/content/groups/public/" } } android { packagingOptions { pickFirst 'META-INF/LICENSE.txt' // picks the JavaMail license file } } dependencies { // use whatever the current version is... compile 'com.sun.mail:android-mail:1.6.1' compile 'com.sun.mail:android-activation:1.6.1' }
2、遇到的问题:
(1) Caused by: com.android.builder.merge.DuplicateRelativeFileException: More than one file was found with OS
independent path 'META-INF/mimetypes.default' at com.android.builder.merge.StreamMergeAlgorithms.lambd
a$acceptOnlyOne$2(StreamMergeAlgorithms.java:75)
解决方法:修改packagingOptions为:
android { packagingOptions { pickFirst 'META-INF/*' // picks the JavaMail license file } }
(2)xjava重复引包问题
Program type already present: com.sun.activation.registries.LogSupport Message{kind=ERROR, text=Program
type already present: com.sun.activation.registries.LogSupport, sources=[Unknown source file], tool name=Option
al.of(D8)}
解决方法:在dependencies中加入:
configurations { all*.exclude group: 'javax.activation', module: 'activation'}