[英]java.lang.NoClassDefFoundError when running jdk 1.7 compiled jarfile inside project compiled with 1.6 jdk
[英]java.lang.NoClassDefFoundError: java/awt/Desktop in JDK 1.7
我正在嘗試使用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");
這段代碼位於AsyncTask
的doInBackground()
方法中。
我已經檢查過,並且Android Studio已配置為使用JDK 1.7。
為什么會發生這種情況,我該如何解決?
Android不支持所有JDK類,只有一個子集,而java.awt
不是其中的一部分。 因此,找不到java.awt.Desktop
。 似乎您根本沒有使用正確的API。 您應該改用Android快速入門 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.