GCMRegistrar jar вызывает ошибку в eclipse, источник не найден.Остановка отладки
-
11-12-2019 - |
Вопрос
Я пытаюсь зарегистрировать приложение 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 существует в списке.