3

我正在爲Android 4+開發Eclipse + Eclipse Juno ADT bundle + Google Plugin for Eclipse。 我需要以編程方式登錄到Google帳戶才能使用Google Calendar API。對於 ,我正在使用客戶經理。我得到以下錯誤:Android上的java.lang.NoClassDefFoundError with GoogleAccountCredential.newChooseAccountIntent()

05-05 13:28:55.605: E/AndroidRuntime(11186): FATAL EXCEPTION: main 
05-05 13:28:55.605: E/AndroidRuntime(11186): java.lang.NoClassDefFoundError: com.google.android.gms.common.AccountPicker 
05-05 13:28:55.605: E/AndroidRuntime(11186): at com.google.api.client.googleapis.extensions.android.gms.auth.GoogleAccountCredential.newChooseAccountIntent(GoogleAccountCredential.java:171) 
05-05 13:28:55.605: E/AndroidRuntime(11186): ... 

這是導致它的代碼:

GoogleAccountCredential credential; 

credential = GoogleAccountCredential.usingOAuth2(this, CalendarScopes.CALENDAR); 

chooseAccount(); 

private void chooseAccount() { 

    startActivityForResult(credential.newChooseAccountIntent(), REQUEST_ACCOUNT_PICKER); 

} 

我已經搜索計算器的解決方案。 libs目錄包含日曆 庫文件月食我通過谷歌Eclipse插件進口(裏面還放有 認證等等庫):

android-support-v4.jar 
google-api-client-1.14.1-beta.jar 
google-api-client-android-1.14.1-beta.jar 
google-api-services-calendar-v3-rev41-1.14.2-beta.jar 
google-http-client-1.14.1-beta.jar 
google-http-client-android-1.14.1-beta.jar 
google-http-client-gson-1.14.1-beta.jar 
google-http-client-jackson-1.14.1-beta.jar 
google-http-client-jackson2-1.14.1-beta.jar 
google-oauth-client-1.14.1-beta.jar 
gson-2.1.jar 
jackson-core-2.1.3.jar 
jackson-core-asl-1.9.11.jar 
jsr305-1.3.9.jar 

然而這些似乎並不包括

com.google.android.gms.common.AccountPicker 

如果我在我的代碼中導入該代碼,導入的代碼行會被標記爲錯誤。 所以發生了什麼。我已經複製從谷歌日曆樣的地方 運行良好此代碼:

http://samples.google-api-java-client.googlecode.com/hg/calendar-android-sample/

該代碼已經一致,除了相同的庫:

  1. 日曆LIB是rev33代替rev41
  2. jackson和jackson-asl庫缺失
  3. .properties文件,用於示例代碼中存在的每個庫文件但不包含在我的代碼中

所以這不應該是問題。然而, 看在代碼的進口部分中,谷歌日曆的示例代碼有:

import com.google.android.gms.common.GooglePlayServicesUtil; 

,但如果我試圖插入我的代碼這行代碼就被標記爲錯誤 說進口玉米.google.android.gms.common.GooglePlayServicesUtil 無法解析。

這篇文章

java.lang.NoClassDefFoundError: com.google.android.gms.common.AccountPicker

說,他們能夠

import com.google.android.gms.common.AccountPicker; 

但我想知道來自哪一個庫。

我甚至通過一次檢查一個文件試圖尋找 庫從中我可以包括com.google.android.gms.common原生Android日曆樣本。* ,但無法找到它。 如何可能?

我在做什麼錯?

非常感謝您的幫助。

回答

3

好吧,我已經發現我失蹤了。

  1. 確保你已經下載了Android SDK服務 - >附加功能 - >谷歌播放服務

  2. 請按照下面的鏈接 提供的說明,谷歌的播放服務-lib庫添加到您的項目:

http://developer.android.com/tools/projects/projects-eclipse.html#ReferencingLibraryProject

問候

+0

這發生在我身上時,我將我的應用程序從eclipse遷移到android studio。解決方案是:1)從Android SDK Manager下載Google Play服務。 2)使用文件>項目結構並添加Google Play服務(如果您的項目中沒有它,請添加android支持v7)。 – Herman 2014-12-30 21:08:30

3

我最近碰到類似的問題。我的應用程序(不是在生產中還)會突然(自五月初)開始呼叫

GoogleAccountCredential.usingOAuth2(this, DriveScopes.DRIVE_FILE)

方法時拋出抓不到「的NoClassDefFoundError」的錯誤。這是隨機發生的,通常是早上第一次。我可以通過重新安裝我的Google帳戶來修復它。不過,這不是一個好的解決方案。我花了幾個小時試圖解決它,直到我終於意識到我有另一個應用程序在相同的代碼序列中沒有相同的問題。所以我DIFF-ED他們與認識到「好」人有條目的「包裝Explorer的>項目 - >屬性 - > Java構建路徑」的「好」人有

'google-play-services.jar' BEFORE 'android-support-v4.jar',

不同的序列

那裏'壞'一個倒退。所以我切換了序列(使用對話框中的向上,向下按鈕),似乎解決了這個問題。又一個WT ......?時刻!有人對此有意見嗎?

相關問題