我正在尝试使用Gmail API,但遇到了此运行时异常:
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");
此代码位于doInBackground()
的{{1}}方法中。
我已经检查过并且Android Studio配置为使用JDK 1.7。
为什么会发生这种情况,我该如何解决?
答案 0 :(得分:0)
Android不支持所有JDK类,只有subset和java.awt
不属于它。因此无法找到java.awt.Desktop
。您好像根本没有使用正确的API。您应该使用Android Quickstart代替。