NoClassDefFoundError:JDK1.7中的java/awt/Desktop
我试图使用Gmail API,但遇到了以下运行时异常:NoClassDefFoundError:JDK1.7中的java/awt/Desktop,java,android,noclassdeffounderror,gmail-api,Java,Android,Noclassdeffounderror,Gmail Api,我试图使用Gmail API,但遇到了以下运行时异常: java.lang.NoClassDefFoundError: java/awt/Desktop 发生在此处(最后一行): 此代码位于AsyncTask的doInBackground()方法中 我已经检查过了,Android Studio配置为使用JDK 1.7 为什么会发生这种情况?我如何修复它?Android不支持所有JDK类,只有java和类。awt不是它的一部分。因此,找不到java.awt.Desktop。看起来您根本没有使用正
java.lang.NoClassDefFoundError: java/awt/Desktop
发生在此处(最后一行):
此代码位于AsyncTask
的doInBackground()
方法中
我已经检查过了,Android Studio配置为使用JDK 1.7
为什么会发生这种情况?我如何修复它?Android不支持所有JDK类,只有java和
类。awt
不是它的一部分。因此,找不到java.awt.Desktop
。看起来您根本没有使用正确的API。您应该改为使用。Android不支持所有JDK类,只有java和java。awt
不是它的一部分。因此,找不到java.awt.Desktop
。看起来您根本没有使用正确的API。您应该改为使用。这必须是类路径问题,您在运行时没有包括编译时可用的某些源。@MattClark他在Android上。您必须包括堆栈跟踪,而不仅仅是单行。我们需要知道是哪个类负载触发了这个问题。啊,我错过了那个标记,但是,这不是问题的全部吗?java.awt软件包甚至可以在Android上使用吗?这解决了我:)这一定是一个类路径问题,你在运行时没有包括编译时可用的一些源。@MattClark他在Android上。你必须包括堆栈跟踪,而不仅仅是一行。我们需要知道是哪个类负载触发了这个问题。啊,我错过了那个标记,但是,这不是问题的全部吗?java.awt软件包甚至可以在Android上使用吗?这解决了我:)谢谢你的快速回答,我已经看到了Android快速启动页面,但我不能使用它,因为我正在为Android API 21开发它。Android Quickstart仅在API 23上支持,我已经搜索了几个小时,寻找一些可以工作的Gmail API代码,我发现的是:我不认为一些java代码在Android上不能工作。对于如何在Android 21而不是23上使用Gmail API,您有什么解决方案吗?@TalMantelmakher它说明了适用于API 23或更高版本的Android SDK包。这并不意味着只支持API级别23及更高版本。但每当我尝试更新这些SDK包时,我都会遇到错误,我只能通过将这些SDK包恢复到旧版本来修复。我做错什么了吗?不知道你犯了什么错误,我还是会说你做错了什么。问题是什么。请再试一次,并针对无法修复的错误提出新问题。感谢您快速回答,我已经看到了Android Quickstart页面,但我无法使用它,因为我正在为Android API 21开发它。Android Quickstart仅在API 23上支持,我已经搜索了几个小时,寻找一些可以工作的Gmail API代码,我发现的是:我不认为一些java代码在Android上不能工作。对于如何在Android 21而不是23上使用Gmail API,您有什么解决方案吗?@TalMantelmakher它说明了适用于API 23或更高版本的Android SDK包。这并不意味着只支持API级别23及更高版本。但每当我尝试更新这些SDK包时,我都会遇到错误,我只能通过将这些SDK包恢复到旧版本来修复。我做错什么了吗?不知道你犯了什么错误,我还是会说你做错了什么。问题是什么。请再试一次,并针对无法修复的错误提出新问题。
InputStream stream = ReadMail.class.getResourceAsStream("/client_secret.json");
Reader clientSecretReader = new InputStreamReader(stream);
GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(ReadMail.JSON_FACTORY, clientSecretReader);
GoogleAuthorizationCodeFlow flow =
new GoogleAuthorizationCodeFlow.Builder(
ReadMail.HTTP_TRANSPORT, ReadMail.JSON_FACTORY, clientSecrets, ReadMail.SCOPES)
.setDataStoreFactory(ReadMail.DATA_STORE_FACTORY)
.setAccessType("offline")
.build();
AuthorizationCodeInstalledApp authCodeInstalledApp = new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver());
Credential credential = authCodeInstalledApp.authorize("user");