Pergunta

Estou tentando registrar um aplicativo Android no Google GCM e parece estar causando um erro no Eclipse.Qualquer ajuda?

explode assim que tento verificar se está registrado.Ele compila bem e eu adicionei o import com.google.android.gcm.GCMRegistrar; Acho que isso é mais sobre eu não entender java e eclipse, do que GCM, mas quem sabe

Adicionei filtros de etapas para ignorar com.google.android.gcm.*

e certifiquei-me de incluir a biblioteca gdm.jar em minha pasta libs local com meu projeto e o caminho de construção.

Se eu percorrer o código, ele para quando tento passar pela primeira linha onde GCMRegistrar é referenciado e diz e diz 'fonte não encontrada'.Se eu não colocar nenhum ponto de interrupção, ele ainda parará quando atingir GCMRegistrar e diz 'fonte não encontrada'.

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());
        }
    }
}
Foi útil?

Solução

Tive que parar de trabalhar no meu projeto GCM, mas pelo menos consegui obter a fonte do material do lado do cliente GCM, então isso pode ajudá-lo a depurar um pouco.Começando com as ferramentas do SDK R17, o Google tornou a anexação de fontes e javadocs uma tarefa difícil, mas isso pode ser feito.

No mesmo diretório 'dist' onde você encontrou o gcm.jar está outro jar gcm-src.jar - essa é a fonte.Portanto, em seu diretório libs, crie um novo arquivo chamado gcm.jar.properties.

Deve conter uma linha como

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

(Edite isso para se referir à instalação do SDK, alterando \\s para /s se você estiver no Linux)

Agora feche seu projeto e reabra-o, caso contrário não funcionará, só Deus sabe por quê!

Agora você deve ter pop-ups do tipo javadoc 'passar o mouse' e ser capaz de entrar nos métodos estáticos do GCMRegistrar.Quanto ao motivo do seu código explodir, talvez isso o aproxime mais.

Aliás, o código de exemplo no qual baseei meu projeto tinha essas duas linhas no início do registro

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

Eles podem lançar alguma luz sobre as coisas

Outras dicas

De acordo com aqui, GCM requer Android 2.2 ou posterior, primeiro verifique se as versões do SDK do manifesto estão corretas

Segundo, clique com o botão direito no seu projeto e selecione Propriedades => Caminho de construção Java => Bibliotecas guia e certifique-se de que gcm.jar exista na lista

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top