我尝试使用Gmail API和我遇到的这个运行时异常:java.lang.NoClassDefFoundError:在JDK的Java/AWT /桌面1.7
java.lang.NoClassDefFoundError: java/awt/Desktop
它发生在这里(最后一行) :
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");
此代码是坐在AsyncTask
的doInBackground()
方法。
我检查了并且Android Studio配置为使用JDK 1.7。
为什么会发生这种情况,我该如何解决?
这必须是一个类路径问题,您不在运行时包含一些在编译时可用的源代码。 –
@MattClark他在Android上。 – chrylis
你必须包含堆栈跟踪,而不仅仅是一行。我们需要知道触发问题的类别负载。 – chrylis