2012-01-31 13 views
49

Tengo una aplicación que he firmado y cargado en Android Market, e instalado en mi teléfono. Me gustaría depurar esta versión apk (mediante Eclipse) mientras se ejecuta en mi teléfono. He hecho esto antes (y recuerdo que es con una de las herramientas de desarrollo de Android, tal vez Dalvik Debug Monitor) pero desafortunadamente no recuerdo cómo hacerlo y no he podido encontrar ningún artículo en línea. ¿Alguien sabe cómo se puede hacer esto?Cómo depurar apk firmado para el lanzamiento?

Nota: Yo tengo conjunto android:debuggable="true" en el manifiesto y han permitido depuración USB en mi teléfono.

+0

lo que actualmente están tratando? ¿No sabes cómo usar la vista de dispositivos en Eclipse? –

+0

Ahora tengo la vista Dispositivos que se muestra en Eclipse. Puedo ver mi dispositivo en la lista de Dispositivos. Hago clic en él, pero el botón "Depurar el proceso seleccionado" está deshabilitado a pesar de que la aplicación se está ejecutando en el teléfono y el proyecto fuente está presente y abierto en el espacio de trabajo. ¡¿Algunas ideas?! –

+0

¿Estás haciendo clic en el nombre del paquete para tu aplicación? –

Respuesta

47

Asegúrese de que android:debuggable="true" se encuentra en la etiqueta application de su archivo de manifiesto, y luego:

  1. conectar el teléfono a su computadora y habilitar la depuración USB en el teléfono
  2. abierto de Eclipse y una espacio de trabajo que contiene el código para su aplicación
  3. En Eclipse, vaya a Ventana-> Mostrar vista-> Dispositivos
  4. Mire la vista Dispositivos que ahora debería estar visible, debería ver su dispositivo liste d
  5. Si el dispositivo no está en la lista, tendrá que localizar a los conductores ADB para su teléfono antes de continuar
  6. Si desea desplazarse por el código, establece un punto de interrupción en algún lugar de su aplicación
  7. Abra la aplicación en su teléfono
  8. En la vista Dispositivos, expanda la entrada de su teléfono si aún no está expandida y busque el nombre del paquete de su aplicación.
  9. Haga clic en el nombre del paquete y en la esquina superior derecha de la vista Dispositivos verá un error verde junto con otros botones pequeños. Haga clic en el error verde.
  10. Ahora debería adjuntar/depurar su aplicación.
+0

Paso al paso 8, pero por alguna razón el nombre del paquete de mi aplicación no se muestra cuando estoy ejecutando la aplicación firmada/publicada. (Extrañamente se muestra cuando ejecuto la aplicación (depuración de aplicaciones) en mi teléfono directamente desde Eclipse.) Confundido ... –

+2

¡Lo tengo! ¡Había puesto el atributo 'android: debuggable =" true "' en la etiqueta 'manifest' en lugar de la etiqueta' application' dentro del manifiesto !! Mi mal :(Muchas gracias Sam_D por tu guía. ¡No lo hubieras hecho sin ti, o en el mejor de los casos hubiera tardado un montón de tiempo! –

+0

OK genial, me alegro de que haya funcionado! –

72

Sé que esta es la vieja pregunta, pero las referencias futuras. En Estudio Android con Gradle:

buildTypes { 
    release { 
     debuggable true 
     runProguard true 
     proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt' 
    } 
} 

La línea debuggable true era el truco para mí.

Actualización:

Desde Gradle 1.0 es minifyEnabled en lugar de runProguard. Mira here

+5

Ten en cuenta que a partir de gradle 1.0 es ** minifyEnabled ** en lugar de ** runProguard ** - ver http://tools.android.com/tech-docs/new-build-system/migrating-to-1-0-0 – m02ph3u5

+0

Gracias @ m02ph3u5, respuesta actualizada! –

28

Además de la manera de Manuel, todavía puedes usar el Manifiesto.

En Android Studio estable, hay que añadir los siguientes 2 líneas a application en el archivo AndroidManifest:

android:debuggable="true" 
    tools:ignore="HardcodedDebugMode" 

El primero permitirá la depuración de APK firmado, y el segundo evitará tiempo de compilación error.

Después de esto, puede adjuntar al proceso a través del botón "Adjuntar depurador al proceso de Android".

+1

No funciona para mí. – jaibatrik

+0

@jaibatrik tiene que ser tu apk y tienes que adjuntar el depurador de las fuentes. Si estás haciendo las dos cosas y aún así no funciona, comparte más información y puedo probar para ayudar – sandalone

+0

Recibí "[Error fatal]: 7: 203: El prefijo" herramientas "para el atributo" herramientas: ignorar "asociado con un tipo de elemento" aplicación "no está vinculado." Es herramientas: ignorar = "HardcodedDebugMode" a legítimo config aquí? –

1

me trataron con la siguiente y ha funcionado:

release { 
      debuggable true 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
+0

Esta respuesta ya ha sido dada en este hilo por Manuel Lopera ... ¡hace tres años! Vea aquí: https://stackoverflow.com/a/27181562/1071320 –

+0

@AdilHussain Pero probé esa respuesta, no funcionó para mí. Vea que hay una diferencia en mi respuesta en 'minifyEnabled false' y es' runProguard true' en su caso. Por favor, consulte los cambios –

+0

No es gran cosa, pero su respuesta contiene una actualización de este efecto. De todas formas. No es un gran trato. Gracias por la respuesta. –

Cuestiones relacionadas