Java.lang.NoClassDefFoundError на Android с GoogleAccountCredential.newChooseAccountIntent ()

Я разрабатываю для Android 4+ с Eclipse Juno ADT bundle + Google Plugin для Eclipse. Мне нужно программно войти в учетную запись google, чтобы использовать API календаря Google. Для этого я использую диспетчер аккаунта. Я получаю следующую ошибку:

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); } 

Я искал stackoverflow для решений. Каталог libs содержит файлы библиотеки календаря для eclipse, которые я импортировал с помощью плагина google для 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 

Если я импортирую это в свой код, строка импорта кода будет помечена как ошибка. Ну что, как поживаешь. Я скопировал этот код из примера Google Calendar, где он работает очень хорошо:

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

Этот код имеет точно такие же libs, за исключением:

  1. Календарь lib – rev33 вместо rev41
  2. Отсутствуют библиотеки Jackson и Jackson-Asl
  3. .properties для каждого файла библиотеки, содержащегося в образце кода, но не в моем коде

Так что это не должно быть проблемой. Однако, смотря в разделе импорта кода, код примера календаря Google имеет:

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

Но если я попытаюсь вставить эту строку кода в свой код, она будет помечена как ошибка, указывающая, что импорт com.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. * Путем проверки одного файла за раз, но не смог его найти. Как это возможно?

Что я делаю не так?

Большое спасибо за вашу помощь.

Хорошо, я узнал, что мне не хватает.

  1. Убедитесь, что вы загрузили Услуги Android SDK -> Дополнительно -> Службы Google Play

  2. Следуйте инструкциям, приведенным в следующей ссылке, чтобы добавить библиотеку google-play-services-lib в ваш проект:

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

С наилучшими пожеланиями

В последнее время я столкнулся с подобной проблемой. Мое приложение (не в производстве еще) внезапно (с начала мая) начнет бросать непонятную ошибку «NoClassDefFoundError» при вызове

GoogleAccountCredential.usingOAuth2 (это, DriveScopes.DRIVE_FILE)

метод. Это происходило случайно, обычно в первый раз по утрам. Я мог бы исправить это, переустановив мою учетную запись Google. Однако это не хорошее решение для производства. Я потратил несколько разочаровывающих попыток решить эту проблему, пока наконец не понял, что у меня есть другое приложение, которое не имеет такой же проблемы в той же последовательности кода. Поэтому я разобрал их обоих и понял, что «хороший» имеет другую последовательность записей в «Проводнике пакетов» -> «Проект -> Свойства ->« Путь сборки Java ».« Хороший »

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

Где «плохой» он имел в обратном направлении. Поэтому я переключил последовательность (используя кнопки ВВЕРХ, ВНИЗ в диалоговом окне), и, похоже, она решила проблему. Еще один WT …? момент! У кого-то есть мнение по этому поводу?

Intereting Posts
Сделать кнопку Datepicker похожим на ту, которая находится в приложении календаря Google. Изменить фон софт-клавиш от черного до прозрачного в приложении для Android Xamarin.Forms: проект сборки проекта Android – отсутствие файлов внутри AppData \ Local \ Xamarin Folders Как получить случайный цвет материала? Как набрать номер со специальными символами, используя намерение Android? Android – Раздвижное меню с подменю Как отключить кнопку возврата при использовании ионного модального на Android? Aubio для отслеживания BPM на Android Убейте другое приложение и очистите его данные Гранулированные растровые изображения в android Требования к кордове Android не удалось: «Не удалось найти установленную версию Gradle» Как защитить приложение Android от устройства? Как играть несколько сигналов тревоги с помощью уведомления? Невозможно построить проект библиотеки Bintray Gradle – ClassNotFoundException Android, NetworkInfo.getTypeName (), NullpointerException