java - 无法使用 App Engine 的 Java Mail 示例代码解析符号

标签 java android google-app-engine jakarta-mail

我已经按照 hello world 指南 here 成功地使用 Android Studio 在我的 Android 项目中设置了一个应用引擎后端。 .该应用程序可以与后端服务器通信。我的下一步是编写后端代码,使其可以发送电子邮件。我正在关注官方指南 here .但是,我遇到了以下导入语句的问题,无法解决。

import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

我真的很困惑为什么会出现这种情况,因为指南特别指出“您需要的所有 JavaMail 类都包含在 App Engine SDK 中。不要将 Oracle® 的 JavaMail JAR 添加到您的应用程序;如果这样做,该应用程序将抛出异​​常。”

我的项目中包含 App Engine SDK,否则 hello world 程序将无法运行。我不明白为什么导入语句没有解析。

这是我的 build.gradle 文件以供引用。非常感谢您的帮助。

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'com.google.appengine:gradle-appengine-plugin:1.9.14'
    }
}
repositories {
    jcenter();
}
apply plugin: 'java'
apply plugin: 'war'
apply plugin: 'appengine'
sourceCompatibility = JavaVersion.VERSION_1_7
targetCompatibility = JavaVersion.VERSION_1_7
dependencies {
    appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.14'
    compile 'javax.servlet:servlet-api:2.5'
}
appengine {
    downloadSdk = true
    appcfg {
        oauth2 = true
    }
}

最佳答案

好吧,我设法在几个小时后通过在 build.gradle 文件中添加 一个 额外的行来解决问题。

dependencies {
    appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.18'
    compile 'com.google.appengine:appengine-api-1.0-sdk:1.9.18'
    compile 'javax.servlet:servlet-api:2.5'   
}

事实证明,只要有

appengineSdk 'com.google.appengine:appengine-java-sdk:1.9.18'

还不够。我的印象是这已经足够了,因为我可以很好地运行 hello world 程序(即使用 GAE 的工具部署到后端,这意味着 sdk 依赖项已注册)。但是,当我尝试在 Java 代码中从 sdk 本身调用特定库时,它们无法解析。

解决方法是添加编译依赖项。

compile 'com.google.appengine:appengine-api-1.0-sdk:1.9.18'

虽然我无法从官方文档中找到信息。事实上,如果不是 this article,我不知道如何正确地表达编译依赖性。和 maven repo .

希望这对在代码中使用 GAE 库的任何人有所帮助。

关于java - 无法使用 App Engine 的 Java Mail 示例代码解析符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29053072/

相关文章:

java - 无法获得 Go Daddy ssl 证书来与 Spring Boot 一起使用

android - 如何更改android不确定的ProgressBar颜色?

android - 如何让 Robolectric 选择特定的微调项

android - 使用 dropbox api 从 dropbox 文件中获取文件 url

google-app-engine - Appengine 模块 : dispatch. yaml 在开发服务器上处于非事件状态

java - 使用 selenium webdriver 上传文件

java - ServerSocket 问题停止线程

java - Android解压功能不起作用

google-app-engine - 如何禁用 `gcloud preview app run` 的健康检查

google-app-engine - 部署 go api 不发送任何响应