如何让 javamail 中的 .jar 文件正常工作?
我正在使用 intelliJ IDEA IDE 并尝试转到项目结构 - 库 - 添加 - 定位的 .jar 文件并保存。然后我转到模块并选中导出下的框,因为我用于 fragment 等的支持库也被选中。
我使用了 Sending Email in Android using JavaMail API without using the default/built-in app 中的代码但没有运气。
我尝试使用完整的 .jar 文件以及提取后的文件,但都因同样的错误而失败。
在代码的编辑模式下我没有收到错误,只有在编译时 gradle 构建失败并向我显示错误,“错误(3,6):Gradle:错误:包 javax.mail 不存在. 请帮忙!
我还尝试按照 How can I use external JARs in an Android project? 上的说明进行操作但我认为这些说明与 eclipse IDE 相关。
edt: 渐变构建:
Information:Compilation completed with 25 errors and 0 warnings in 25 sec
Information:25 errors
Information:0 warnings
Error:Gradle: Execution failed for task ':app:compileDebugJava'.
Compilation failed; see the compiler error output for details. C:\Users\Marcus\Documents\IdeaProjects\Android\TestProjects\TestMailFeature3\app\src\main\java\com\majorwit\testmailfeature3\app\GMailSender.java
Error:(3, 24) Gradle: error: package javax.activation does not exist
Error:(4, 24) Gradle: error: package javax.activation does not exist
Error:(5, 18) Gradle: error: package javax.mail does not exist
Error:(6, 18) Gradle: error: package javax.mail does not exist
Error:(7, 18) Gradle: error: package javax.mail does not exist
Error:(8, 18) Gradle: error: package javax.mail does not exist
Error:(9, 27) Gradle: error: package javax.mail.internet does not exist
Error:(10, 27) Gradle: error: package javax.mail.internet does not exist
Error:(18, 44) Gradle: error: package javax.mail does not exist
Error:(22, 13) Gradle: error: cannot find symbol class Session
Error:(46, 15) Gradle: error: cannot find symbol class PasswordAuthentication
Error:(67, 49) Gradle: error: cannot find symbol class DataSource
Error:(43, 19) Gradle: error: cannot find symbol variable Session
Error:(47, 20) Gradle: error: cannot find symbol class PasswordAuthentication
Error:(52, 13) Gradle: error: cannot find symbol class MimeMessage
Error:(52, 39) Gradle: error: cannot find symbol class MimeMessage
Error:(53, 13) Gradle: error: cannot find symbol class DataHandler
Error:(53, 39) Gradle: error: cannot find symbol class DataHandler
Error:(54, 35) Gradle: error: cannot find symbol class InternetAddress
Error:(58, 46) Gradle: error: package Message does not exist
Error:(58, 65) Gradle: error: cannot find symbol variable InternetAddress
Error:(60, 45) Gradle: error: package Message does not exist
Error:(60, 68) Gradle: error: cannot find symbol class InternetAddress
Error:(61, 13) Gradle: error: cannot find symbol variable Transport
最佳答案
javax.activation 和 javax.mail 包不是标准 android 包的一部分 (http://developer.android.com/reference/packages.html)。
幸运的是,JavaMail 的 Android 版本已经发布 (https://java.net/projects/javamail/pages/Android)。我遵循了在 Android Studio 中为我的项目修改 build.gradle 文件的建议,并且能够成功编译,而无需手动下载任何 jar 文件。
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'
}
关于java - 错误 : Gradle: error: package javax. 邮件不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25207596/