com.гуглить.андроид.не удалось найти пакет gsf
Я пытаюсь использовать новую систему обмена сообщениями Google Cloud, но у меня есть некоторые проблемы.
Я прочитал документ "начало работы" и рассмотрел демонстрационное приложение; после этого я применил требования к своему приложению, а затем создал новое виртуальное устройство с 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.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 к моему классу путь; я не знаю, что неправильный.
2 ответа:
Мне кажется, что вы используете неправильный эмулятор.
эмулятор по умолчанию использует обычный эмулятор Android, который не имеет никаких пакетов Google и не может запускать всевозможные вещи, такие как карты, c2dm и все подобные вещи.
что вы хотите сделать, это создать новый эмулятор, который может поддерживать API Google.
затем, когда вы запускаете проект, выберите эмулятор, который запускает целевое имя
Google APIs (Google Inc).
удачи.
Он, вероятно, работает на устройстве, которое не поддерживает GCM, поэтому ваш вызов GCMRegistrar.checkDevice (this); бросает исключение. Проверьте ваши logcat, чтобы быть уверенным.
Если вы тестируете его на эмуляторе, убедитесь, что у вас есть эмулятор, настроенный для использования API Google. При создании эмулятора окно создать новый AVD имеет поле "цель". Выберите что-то в этом поле, которое говорит "Google API".