GCMRegistrar jar вызывает ошибку в eclipse, источник не найден.Остановка отладки

StackOverflow https://stackoverflow.com//questions/12666694

Вопрос

Я пытаюсь зарегистрировать приложение Android в Google GCM, и, похоже, это вызывает ошибку в eclipse.Любая помощь?

взрывается, как только я пытаюсь проверить, зарегистрирован ли он.Он компилируется нормально, и я добавил import com.google.android.gcm.GCMRegistrar; Я думаю, что это больше связано с тем, что я не понимаю Java и eclipse, чем с GCM, но кто знает

Я добавил фильтры шагов, чтобы игнорировать com.google.android.gcm.*

и я обязательно включил библиотеку gdm.jar в мою локальную папку libs вместе с моим проектом и путем сборки.

Если я пройдусь по коду, он остановится, когда я попытаюсь перешагнуть первую строку, где GCMRegistrar на него ссылаются, и он говорит и говорит: «Источник не найден».Если я не ставлю точки останова, он все равно останавливается при достижении GCMRegistrar и пишет: «Источник не найден».

private void checkRegistration(){
    try{
            if (!GCMRegistrar.isRegistered(getApplicationContext())) {
                 // Automatically registers application on startup.
                GCMRegistrar.register(getApplicationContext(), Utilities.GCM_SENDER_ID);
            } else {
                final String regId = GCMRegistrar.getRegistrationId(getApplicationContext());
                if(regId.equals("")){
                    GCMRegistrar.register(getApplicationContext(), Utilities.GCM_SENDER_ID);
                }else{
                // Device is already registered on GCM

                    if(regId == Utilities.getGcmRegKey(this)){

                    }else{
                        pwClient.updateGCMRef("add", regId, Utilities.getApiKey(this), Utilities.getDeviceId(this));
                        Utilities.setGcmRegKey(this, regId);
                    }
                }
            }
        }catch(Exception ex){
            Log.e("PW", "register error: " + ex.getMessage());
        }
    }
}
Это было полезно?

Решение

Мне пришлось прекратить работу над своим проектом GCM, но мне, по крайней мере, удалось получить исходный код клиентской части GCM, так что это может помочь вам немного отладить.Начиная с инструментов R17 SDK, Google сделал прикрепление исходного кода и javadocs настоящей проблемой, но это можно сделать.

В том же каталоге dist, где вы нашли gcm.jar, находится еще один jar gcm-src.jar — это источник.Итак, в вашем каталоге libs создайте новый файл с именем gcm.jar.properties.

Он должен содержать одну строку типа

src=C:\\dev\\tools\\android-sdk-windows4.1\\extras\\google\\gcm\\gcm-client\\dist\\gcm-src.jar

(Отредактируйте это, чтобы оно относилось к вашей установке SDK, изменив \\s на /s, если вы используете Linux)

Теперь закройте свой проект и откройте его заново, иначе он не будет работать, бог знает почему!

Теперь у вас должны появиться всплывающие окна типа javadoc при наведении курсора мыши и вы сможете войти в статические методы GCMRegistrar.Что касается того, почему ваш код взрывается, возможно, это приблизит вас.

Кстати, пример кода, на котором я основывал свой проект, содержал эти две строки в начале регистрации.

// Check that the device supports GCM (should be in a try / catch)
GCMRegistrar.checkDevice(this);
// Check the manifest to be sure this app has all the required permissions.
GCMRegistrar.checkManifest(this);

Они могли бы пролить некоторый свет на вещи

Другие советы

В соответствии с здесь, GCM требует Android 2.2 или более поздней версии, сначала проверьте правильность версий вашего манифеста SDK.

Во-вторых, щелкните правой кнопкой мыши свой проект и выберите Характеристики => Путь сборки Java => Библиотеки tab и убедитесь, что gcm.jar существует в списке.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top