java.lang.NoClassDefFoundError:JDK 1.7中的java / awt / Desktop

时间:2016-07-25 21:31:54

标签: java android noclassdeffounderror gmail-api

我正在尝试使用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。

为什么会发生这种情况,我该如何解决?

1 个答案:

答案 0 :(得分:0)

Android不支持所有JDK类,只有subsetjava.awt不属于它。因此无法找到java.awt.Desktop。您好像根本没有使用正确的API。您应该使用Android Quickstart代替。