2012-06-30 34 views
20

Estoy intentando registrar un dispositivo en GCM usando el siguiente código:GCM: java.lang.NoClassDefFoundError: com.google.android.gcm.GCMRegistrar

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 


    GCMRegistrar.checkDevice(this); 
    // the following function can be removed when deploying the app 
    GCMRegistrar.checkManifest(this); 

    final String regId = GCMRegistrar.getRegistrationId(this); 
    if (regId.equals("")) { 
     GCMRegistrar.register(this, SENDER_ID); 
    } else { 
     Log.v(TAG, "Already registered"); 
    } 

He importado com.google.android importación .gcm.GCMRegistrar;
y tambien tiene añadido gcm.jar a mi BuildPath en Eclipse, que llegué a través de la descarga del SDK

por favor ayuda!

+1

¿En qué carpeta está su jarra? –

+3

Debe colocar el jar en su carpeta libs (no lib) y verificar que esté en la lista de "dependencias de Android". A veces descubrí la reorganización del orden del comportamiento de cambios de las dependencias, así que puedes intentarlo también – Shushu

+0

gracias copié el archivo jar a la carpeta libs y parece funcionar. – user1492955

Respuesta

31

en el ADT actualizado (Por encima de ADT 17) debe colocar archivos jar dentro de la carpeta libs y no en lib. Así que asegúrese de poner el archivo gcm.jar dentro de libs y no en la carpeta lib.

+6

mi gcm.jar está dentro de libs y he ha configurado la ruta aún no tiene éxito – Passion

1

Asegúrese de que el archivo jar GCM está en la carpeta libs derecho y agregados en la ruta de acceso de construcción Java en . las propiedades del proyecto

28

basta con ir a las propiedades del proyecto -> java build Path -> "orden y la exportación" ahora GIV una garrapata en el archivo jar "gcm.jar" que ha agregado

+3

esto funcionó para mí, gracias !!! – TharakaNirmana

+0

Esto es trabajo para mí también ... gracias. –

6

Crea una carpeta libs en la carpeta del proyecto y pon el gcm.jar en ella. A continuación, agréguela a su ruta de clase con agregue jarros externos en configure ruta de acceso opción.

+1

No es obligatorio compilar la ruta. –

3

usted tiene que poner el archivo gcm.jar dentro libs, y luego ir a proyectar Propiedades> Java Build Path> Bibliotecas y añadirlo a la ruta utilizando Añadir JAR externos ..., después de Solicitar y Exporte marca gcm.jar y presiona OK. Eso debería funcionar

10

Mi gcm.jar estaba ya en librerías, por lo que no era un problema de nombres de carpeta para mí ..

que tenía que ir a Right Click>Build Path>Configure Build path... para el proyecto en cuestión y me eliminado la siguiente:

  • los archivos persistentes fuera de una carpeta/paquete
  • Android Private Libraries
  • Cualquier paquetes con la palabra 'referencia' en ellos (puede que no tenga uno)

Es posible que obtenga muchos "errores" en su proyecto así que reinicie Eclipse y déjelo limpio. Una vez que limpia, no tendrás errores. Ejecuta tu proyecto y viola.

Gracias a DLew para esta respuesta.

+1

¡Muchas gracias! ¡esta respuesta puede haber tenido cero votos y haber estado muy abajo en la página, pero fue la que funcionó cuando todos los demás fallaron! – Bltucker

+0

Su respuesta es excelente y funcionó para mí. Gracias a Jackson y BLT también – Sakthimuthiah

1

Tuve el mismo problema, después de actualizar SDK en mi proyecto. me ayudó: acabo de "agregar una biblioteca de soporte" en "Herramientas de Android". Espero que esto ayude a los demás.

1

Me también tengo el mismo problema, después de añadir android-support-v4.jar y gcm.jar en mis librerías carpeta sin problemas encuentran sus trabajos como un encanto

Gracias

Cuestiones relacionadas