无法使用应用程序引擎解析符号';Java Mail的示例代码

无法使用应用程序引擎解析符号';Java Mail的示例代码,java,android,google-app-engine,jakarta-mail,Java,Android,Google App Engine,Jakarta Mail,我已经按照hello world指南在我的Android项目中成功地使用Android Studio设置了一个应用引擎后端。应用程序可以与后端服务器通信。我的下一步是对后端进行编码,以便它可以发送电子邮件。我遵循官方的指南。但是,我面临以下导入语句的问题,无法解决 import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Session; import javax.mail.Transpo

我已经按照hello world指南在我的Android项目中成功地使用Android Studio设置了一个应用引擎后端。应用程序可以与后端服务器通信。我的下一步是对后端进行编码,以便它可以发送电子邮件。我遵循官方的指南。但是,我面临以下导入语句的问题,无法解决

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;
我真的很不解为什么会出现这种情况,因为指南特别指出“应用引擎SDK中包含了您需要的所有JavaMail类。不要将Oracle®的JavaMail JAR添加到您的应用程序中;如果添加,应用程序将抛出异常。”

我在项目中包含了应用引擎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'
这还不够。我觉得这已经足够了,因为我可以很好地运行helloworld程序(即使用GAE的工具部署到后端,这意味着sdk依赖项已经注册)。但是,当我尝试在Java代码中从sdk本身调用特定库时,它们无法解决

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;
修复方法是添加一个编译依赖项。

compile 'com.google.appengine:appengine-api-1.0-sdk:1.9.18'
但我无法从官方文件中找到信息。事实上,如果不是for和,我就不知道如何正确表达编译依赖关系


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

我对GAE一无所知,但您需要JavaMail的依赖关系吗?嗨,比尔,是的,JavaMail需要依赖关系,但它与GAE SDK捆绑在一起,指南的措辞表明不需要额外的操作(“您需要的所有JavaMail类都包含在App Engine SDK中”)。但是,事实证明,仅仅拥有appengineSdk依赖项是不够的。我将在回答中详细说明。节省了我的时间。谢谢