Google Maps Android API v2 – Bloqueos de código de ejemplo

Estoy intentando que funcione el código de ejemplo de Android ‘Google Maps Android API v2’. Consigo el proyecto construido sin errores. Sin embargo, cuando bash ejecutar la aplicación en mi Galaxy Nexus (conectado con el usb a mi computadora portátil), la aplicación falla inmediatamente.

  • Completé mi propia clave de la API de Maps en AndroidManifest.xml
  • Construí contra Android 4.1.2

Esta es la tala:

Unable to resolve superclass of Lcom/example/mapdemo/BasicMapActivity; (66) Link of class 'Lcom/example/mapdemo/BasicMapActivity;' failed Could not find class 'com.example.mapdemo.BasicMapActivity', referenced from method com.example.mapdemo.MainActivity. VFY: unable to resolve const-class 108 (Lcom/example/mapdemo/BasicMapActivity;) in Lcom/example/mapdemo/MainActivity; VFY: replacing opcode 0x1c at 0x000d Exception Ljava/lang/NoClassDefFoundError; thrown while initializing Lcom/example/mapdemo/MainActivity; Class init failed in newInstance call (Lcom/example/mapdemo/MainActivity;) Shutting down VM threadid=1: thread exiting with uncaught exception (group=0x41ac9930) FATAL EXCEPTION: main java.lang.ExceptionInInitializerError at java.lang.Class.newInstanceImpl(Native Method) at java.lang.Class.newInstance(Class.java:1319) at android.app.Instrumentation.newActivity(Instrumentation.java:1054) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2097) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230) at android.app.ActivityThread.access$600(ActivityThread.java:141) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1234) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5039) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:560) at dalvik.system.NativeStart.main(Native Method) Caused by: java.lang.NoClassDefFoundError: com.example.mapdemo.BasicMapActivity at com.example.mapdemo.MainActivity.(MainActivity.java:97) ... 15 more 

¿Alguien tiene una pista sobre cómo resolver esto o lo que podría estar haciendo mal?

Sigue la hoja de la cuna muy, muy cuidadosamente:
https://docs.google.com/document/pub?id=19nQzvKP-CVLd7_VrpwnHfl-AE9fjbJySowONZZtNHzw

En particular, creo que debes:

  • Importe la fuente real del proyecto “google-play-services_lib” y vincúlela como una biblioteca de Android .
    • Haga esto a través de Proyecto -> Propiedades -> Android -> Biblioteca, Agregar -> google-play-services_lib (puede hacer clic con el botón derecho en su proyecto y seleccionar Propiedades, luego seleccionar Android).
    • No lo agregue como un Proyecto dependiente a través de la “Ruta de comstackción de Java” para su proyecto, eso no funcionó para mí.
  • Agregue google-play-services.jar y android-support-v4.jar en una carpeta “libs” en el proyecto de ejemplo y agréguelos como “JAR externos externos” en “Build Path -> Configure Build Path -> Libraries” .

Descubrí que este segundo paso era necesario ya que estaba alcanzando el mismo error exacto que cuando intentas usar el código de muestra. El primer paso fue necesario para evitar un NoClassDefFoundError en com.google.android.gms.R$styleable en mi proyecto real.

También tuve que hacer una comstackción limpia y desinstalar la aplicación del dispositivo (desde un bash de prueba anterior) antes de que el código de muestra funcionara.

Siga las siguientes instrucciones de código de muestra de google.

Omita la sección “4” y siga las instrucciones a continuación:

  • Agregue una nueva carpeta a su proyecto llamado “libs”
  • Copie el formulario google-play-services.jar:

    “android-sdk-folder \ extras \ google \ google_play_services \ libproject \ google-play-services_lib \ libs”

    a la carpeta “libs” -> haga clic derecho en este jar en esta carpeta -> Build path -> Add to build path.

  • Copie el formulario android-support-v4.jar:

    “android-sdk-folder \ extras \ android \ support \ v4”

    a la carpeta “libs” -> haga clic derecho en este jar en esta carpeta -> Build path -> Add to build path.

Donde “android-sdk-folder” generalmente se ve así: “C: \ Users \ User_Name \ android-sdks”

Tuve el mismo problema, hice lo siguiente para solucionar el problema.

  1. Vaya a “Propiedades” del proyecto.
  2. Seleccione “Ruta de comstackción de Java”
  3. Seleccione la pestaña “Ordenar y exportar”
  4. Debería ver las rutas y dependencias “src” y “gen” del proyecto seleccionado aquí.

El orden en que se enumeraron fueron primero “src” y luego “gen” path Los cambié, de modo que la carpeta “gen” se compile antes del “src”

LUEGO “Marque” cada uno de los elementos enumerados

ver: NoClassDefFoundError para el código en una biblioteca Java en Android

Esto sucede debido a la gran confusión sobre cómo importar proyectos. Los documentos https://developers.google.com/maps/documentation/android/intro#sample_code indican que no debe seleccionar “Copiar proyectos en el área de trabajo” en ningún momento y para que los ejemplos se ejecuten, esto es lo que debe cumplir. No seleccione esta opción para los servicios y muestras de juego; déjelos donde están.

Después de importar ambos, compruebe lo siguiente:

  1. Haga clic con el botón derecho en el proyecto MainActivity y elija propiedades
  2. Ve a Android y asegúrate de ver una marca verde al lado de google-play-services-lib (La lib de los servicios de reproducción nunca debería agregarse como un jar, sino que debería agregarse como una biblioteca de Android)
  3. Vaya a Java Build Path e importe jar externo (android-support-v4.jar) en la sección de bibliotecas
  4. [IMPORTANTE] Vaya a Ordenar y Exportar en la Ruta de comstackción de Java y asegúrese de que android-support-v4.jar tenga un tilde al lado (no ocurrirá de manera predeterminada y es por eso que está viendo el error que menciona en la cima)
  5. Asegúrese de limpiar y construir el proyecto después de hacer cambios, para que no termine tratando de arreglar las cosas que funcionan, sino que simplemente no se presionaron.
  1. Siga las instrucciones del código de muestra de google.
  2. Y configure la ruta de comstackción de Java de esta manera: enter image description here

Me enfrenté al mismo problema y no pude resolverlo. Finalmente tomé la carpeta de proyectos de muestra de otra máquina, la copié a la mía y cargué el nuevo proyecto que tomé de la otra máquina. Entonces todo está funcionando bien. Intenté rastrear el problema comparando 2 proyectos de muestra pero no pude. De todos modos, los nuevos proyectos de muestra que tomé de la otra máquina están funcionando bien.

Tuve el mismo problema. El archivo ‘import-summary.txt’ tenía la respuesta. En mi caso, importé el proyecto Eclipse en una ruta con un espacio en la ruta. Esto causa un problema con el asistente. Nuevo camino creado. Proyecto reimportado. Luego Build / Rebuild Project. No hay problemas.

  1. Pruebe el mismo código de muestra en el nuevo espacio de trabajo.

  2. Incluso puede copiar y pegar el proyecto del mapa de muestra y el proyecto de Google Play Services-lib (/ extras / google / google_play_services / libproject / google-play-services_lib) y pegarlo en el nuevo espacio de trabajo nuevo.

  3. Después de no olvides agregar el ARCHIVO JAR REQUERIDO DE SDK. (“android-support-v4.jar” se encuentra en “/extras/android/compatibility/v4/android-support-v4.jar” debajo de su directorio “android-sdk”).
Intereting Posts