2016-07-25 5 views
0

Я пытаюсь использовать API Gmail, и я столкнулся с этим исключение времени выполнения:java.lang.NoClassDefFoundError: Java/AWT/Desktop в JDK 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"); 

Этот код сидит в doInBackground() методом AsyncTask.

Я проверил и Android Studio настроен на использование JDK 1.7.

Почему это происходит и как я могу это исправить?

+0

Это должно быть проблемой класса, вы не включаете во время выполнения, некоторый источник, который у вас был доступен во время компиляции. –

+0

@MattClark Он на Android. – chrylis

+0

Вы должны включить трассировку стека, а не только одну строку. Нам нужно знать, какая загрузка класса вызывает проблему. – chrylis

ответ

0

Android не поддерживает все классы JDK, только subset и java.awt не являются его частью. Поэтому java.awt.Desktop не найден. Похоже, вы совсем не используете API-интерфейс. Вместо этого вы должны использовать Android Quickstart.

+0

Спасибо за ответ быстро, я видел страницу быстрого запуска Android, но я не могу использовать ее с тех пор, как я разработал ее для Android API 21. И Android Quickstart поддерживается только в API 23 –

+0

Я искал часы для некоторого кода API Gmail что работает и что я нашел: https://developers.google.com/gmail/api/quickstart/java Не думал, что какой-то Java-код не может работать в Android. У вас есть какие-либо решения по использованию Gmail API для Android 21, а не 23? –

+0

@TalMantelmakher В нем указаны * пакеты Android SDK для API 23 или новее *. Это не означает, что поддерживаются только уровни API 23 и более поздние версии. – tynn

Смежные вопросы