Не удалось найти пакет com.google.android.gsf.

Я пытаюсь использовать новую систему Google Cloud Messaging, но у меня есть некоторые проблемы.

Я прочитал документ «Начало работы» и просмотрел демонстрационное приложение; После этого я применил требования к моему приложению, тогда я создал новое виртуальное устройство с API 16.

Но когда я пытаюсь зарегистрировать свое устройство в GCM, он терпит неудачу из-за этой строки:

GCMRegistrar.checkDevice(getApplicationContext()); 

В logcat я вижу эти ошибки:

 07-05 07:06:31.925: E/AndroidRuntime(691): FATAL EXCEPTION: main 07-05 07:06:31.925: E/AndroidRuntime(691): java.lang.UnsupportedOperationException: Device does not have package com.google.android.gsf 07-05 07:06:31.925: E/AndroidRuntime(691): at com.google.android.gcm.GCMRegistrar.checkDevice(GCMRegistrar.java:83) 07-05 07:06:31.925: E/AndroidRuntime(691): at aero.tav.mobile.genel$4.onClick(genel.java:201) 07-05 07:06:31.925: E/AndroidRuntime(691): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:166) 07-05 07:06:31.925: E/AndroidRuntime(691): at android.os.Handler.dispatchMessage(Handler.java:99) 07-05 07:06:31.925: E/AndroidRuntime(691): at android.os.Looper.loop(Looper.java:137) 07-05 07:06:31.925: E/AndroidRuntime(691): at android.app.ActivityThread.main(ActivityThread.java:4745) 07-05 07:06:31.925: E/AndroidRuntime(691): at java.lang.reflect.Method.invokeNative(Native Method) 07-05 07:06:31.925: E/AndroidRuntime(691): at java.lang.reflect.Method.invoke(Method.java:511) 07-05 07:06:31.925: E/AndroidRuntime(691): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 07-05 07:06:31.925: E/AndroidRuntime(691): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 07-05 07:06:31.925: E/AndroidRuntime(691): at dalvik.system.NativeStart.main(Native Method) 

Я добавил gcm.jar в свой классный путь; Я не знаю, что случилось.

Мне кажется, что вы используете неправильный эмулятор.

Эмулятор по умолчанию использует обычный эмулятор Android, у которого нет пакетов Google, и не может запускать всевозможные вещи, такие как карты, c2dm и всевозможные подобные вещи.

Что вы хотите сделать, это создать новый эмулятор, который может поддерживать API Google.

Затем, когда вы запускаете проект, выберите эмулятор, который запускает целевое имя Google APIs (Google Inc).

удачи.

Вероятно, это работает на устройстве, которое не поддерживает GCM, поэтому ваш вызов в GCMRegistrar.checkDevice (это); Бросает исключение. Проверьте свой логарифм, чтобы убедиться.

Если вы тестируете его на эмуляторе, убедитесь, что эмулятор настроен для использования API Google. Когда вы создаете эмулятор, в новом окне AVD есть поле «Target». Выберите что-то в этом поле, которое говорит «API Google».

Введите описание изображения здесь

Intereting Posts
Удалите все неиспользуемые ресурсы из проекта Android Android NullpointerException при попытке получить данные из SQLiteOpenHelper BroadcastReceiver получает несколько идентичных сообщений для одного события Измените тему TimePickerDialog на использование AppTheme LinearyLayout не будет изменять размер, если его высота равна 0 Обнаружение MMS-сообщений на Android Как использовать NodeJS в Android с помощью J2V8 Проблема с быстрым прокруткой с помощью ListAdapter и SectionIndexer Как получить разделители в меню NavigationView без заголовков? Android: местоположение Google Maps с низким уровнем использования батареи Как оставаться подключенным к службе Android между несколькими действиями? Как выровнять изображение в кнопке изображения Не удалось установить драйвер USB для Android на Windows 7 Что означают номера сборки в телефоне Android. Как они формируются. Указывают ли они на какой-то смысл, который я не могу понять? Процесс проверки мобильного телефона Android