No se puede depurar la aplicación en Android Studio

81

Estoy creando una aplicación en Android Studio, ahora intento depurarla a través de adb. Cuando hago clic en la palabra Android y el logotipo en la barra inferior, logcat aparece y reconoce mi dispositivo. Entonces veo esto:

captura de pantalla

¿Qué debo hacer con mi aplicación para que sea "depurable"?

FYI estaba desarrollando esta aplicación en Eclipse antes y adb funcionó bien.

Andy Roy D.
fuente
¿Encontraste una solución?
Paul
Desinstalar la aplicación del dispositivo y ejecutarla nuevamente desde el estudio de Android resolvió mi problema
Ahmad Behzadi
3
Hoy tuve un problema, los puntos de interrupción no pueden detener el programa. Y fue debido al establecimiento en build.gradle. Establecí el tipo de compilación de depuración con minifyEnabled es verdadero, eliminé esto y el punto de interrupción funcionó.
castillo bai
echa un vistazo a mi respuesta aquí . eso podría resolver el problema
Muahmmad Tayyib

Respuestas:

85

Hay un icono de depuración en la barra de herramientas. Parece un pequeño "error" y se encuentra justo al lado del icono Ejecutar (que parece un botón de reproducción). Intente iniciar la aplicación con eso.

Haga clic aquí para depurar

Editar: lo siguiente está obsoleto cuando se usa Android Studio con Gradle.

También hay una marca de depuración en el archivo AndroidManifest.xml . Se encuentra debajo de la etiqueta de la aplicación y debe establecerse en "true", de la siguiente manera:

<application android:debuggable="true">
</application>
free3dom
fuente
1
¿Podemos caminar una línea a la vez, como en un eclipse? si se puede, ¿cómo se hace?
Ari R. Fikri
1
Seguro que puede. Una vez que llega a un punto de interrupción, se muestra la ventana de depuración, la barra de herramientas en la parte superior contiene los distintos comandos de pasos. También puede configurar los distintos atajos de teclado de depuración desde File-> Settings-> Keymap- se encuentran en Main menu-> Run. Vea esto para más información.
free3dom
7
La última versión de Android Studio no le obliga a configurar el Android: depurable, de hecho muestra un garabato que sugiere configurarlo en la configuración en lugar de en el manifiesto. Esto ayuda a evitar publicar accidentalmente una aplicación con información de depuración.
Soundararajan
3
No funciona 2015, build.gradle puso buildTypes {debug {debuggable true
2
es trabajo para mi. Puse el en el manifiesto <application android: debuggable = "true"> </application> y depuro perfecto. Gracias
Andy Luis
111

Resolví este problema después de seguir los siguientes pasos:

Vaya a Herramientas ==> android ==> Deshabilite la integración de ADB y habilítelo nuevamente.

Después de eso, desconecte el USB del dispositivo y vuelva a conectarlo.

Finalmente presione shift + F9

Prathamesh Gujar
fuente
Eso es lo que me ayudó. De repente, la depuración dejó de funcionar, después de que esto funcionó nuevamente.
Rui Santos
Todavía funciona a partir de hoy, intenté reiniciar y todo.
Mathijs Segers
1
Solo necesitaba cerrar y volver a abrir el estudio de Android para esa instancia del proyecto para que el error funcione: /
Rachael
18
No existe un elemento de menú llamado "Herramientas ==> android" en la versión 3.1.3 de Android Studio y no puedo encontrar esta opción en ninguna parte
James Watkins
1
No hay opciones "adb" en ningún lugar de los menús de Android Studio 4
spartygw
34

Otra cosa a tener en cuenta (hice esto para saberlo, duh). ¡Asegúrese de no habilitar Proguard para la depuración!

John Smith
fuente
6
gracias y tuve que hacer minifyEnabled falso y shrinkResources falso
Janardhan R
16

También tuve este problema al azar incluso después de depurar muchas veces en Android Studio. Un día, el depurador simplemente no se conecta. Solo tuve que salir de Android Studio y volver a abrirlo y el depurador comenzó a funcionar nuevamente.

Adam Johns
fuente
15
    <application android:debuggable="true">
</application>

¡Esto ya no funciona! No es necesario utilizar debuggable = "true" en el manifiesto.

En su lugar, debe configurar las variantes de compilación en "depurar"

Modo de depuración

En Android Studio, vaya a BUILD -> Select Build Variant

Ahora intente depurar. Gracias

itzo
fuente
El menú Generar no tiene la opción "Seleccionar variante de generación".
Pete Alvin
14

Esto funcionó para mí:

  1. Cierre Android Studio.
  2. Abra el caparazón y escriba:

    adb kill-server

    adb start-server

limlim
fuente
Justo lo que estaba buscando. Anteriormente, podía hacer esto con un adb reconnectcomando simple , pero ya no lo hace en AS 3.1 (¿tal vez estoy haciendo algo mal o no lo suficiente?
VictorB
Por cierto, esta solución funcionó para mí sin cerrar AS, o la sesión de terminal.
VictorB
11

Asegúrese de haber habilitado la integración ADB.

En Menú: Herramientas -> Android -> Habilitar integración ADB (v1.0)

myfknoll
fuente
11

Si su aplicación solía ser depurable y de repente ya no se puede depurar, aquí está mi solución

  1. deshabilite y habilite el USB debuginterruptor en su teléfono.
  2. Desinstale su aplicación.
  3. haga clic en Ejecutar en Android Studio.
Miao1007
fuente
8

Un caso en el que no puede depurar una aplicación en Android Studio es cuando tiene seleccionada la variante de compilación de "lanzamiento". Me pasó a mí: Gradle crea una versión de lanzamiento de la aplicación (que no se puede depurar) y luego Android Studio falla al intentar conectar el depurador.

Harri
fuente
1
Esto me ha hecho tropezar varias veces, incluso en otros IDE. Creo que la capacidad de depurar la versión se puede configurar en la mayoría de los IDE y, a veces, se recomienda si desea adjuntar el depurador a las aplicaciones publicadas.
visc
7

Esto me pasa de vez en cuando y todavía tengo que averiguar por qué. Ninguna de las soluciones ya publicadas me ha funcionado. Lo único que me funciona es:

  1. Desinstale la aplicación del dispositivo.
  2. Proyecto limpio. "Construir -> Proyecto limpio".
  3. Reconstruir e instalar.
KyleT
fuente
7

El icono "Adjuntar depurador al proceso de Android" debe usarse en caso de que establezca "android: proceso" personalizado en su archivo de manifiesto.
En mi caso, debería seleccionar el proceso adecuado y hacer clic en el botón Aceptar justo después de que aparezca el cuadro de diálogo "Esperar al depurador".
ingrese la descripción de la imagen aquí

usuario1700099
fuente
una solución horrible, pero lo único que funciona para mí en este momento, ¡¡¡GRACIAS !!!
Jules
Me funcionó a pesar de que no tenía un "android: process" personalizado en mi archivo de manifiesto.
Jason Bowers
esta fue la solución para mí. Gracias
gmartinsnull
4

Verifique, si su proyecto de aplicación está seleccionado en el menú desplegable junto al botón de depuración. A veces, Android Studio simplemente restablece esta selección ...

ingrese la descripción de la imagen aquí

longi
fuente
4

Si habilita

<application android:debuggable="true">
</application>

En el archivo manifest.xml de la aplicación, asegúrese de deshabilitarlo al generar el apk final firmado, ya que esto puede servir como un agujero de seguridad para los atacantes. Úselo solo si solo una de sus aplicaciones no muestra los registros. Sin embargo, antes de considerar esa opción, intente esto:

Navega a herramientas en el estudio de Android

 Tools==>android==>disable adb integration and again enable it
Santa Teclado
fuente
3

Además, asegúrese de no utilizar otras aplicaciones que también puedan estar usando ADB, como Eclipse, por ejemplo.

Pedro Oliveira
fuente
3

Probé todas las formas y ninguna de ellas funcionó.

finalmente tuve que cambiar el puerto adb y funcionó. Primero mata el servidor adb como se muestra a continuación:

adb kill-server

luego reinícielo usando otro puerto

adb -P 5038 start-server
Amir Ziarati
fuente
3

Hice una construcción limpia usando el siguiente comando .. Sorprendentemente funcionó.

sh gradlew construcción limpia

¡Ojalá alguien reciba ayuda!

Shaiban
fuente
1
¿En qué consola tenemos que iniciarlo?
DmitryBoyko
Ejecute este comando en la terminal de estudio de Android o navegue a su proyecto desde una terminal externa
Haider Ali
3

En mi caso, cerca de cualquier línea, apareció un círculo rojo con una cruz y una línea roja con un mensaje: "No se encontró código ejecutable en la línea ..." como en Android Studio Gradle Breakpoint No se encontró código ejecutable en la línea .

Apareció un problema después de la actualización de build.gradle. Incluimos el soporte de Kotlin, por lo que varios métodos superaron los 64K. Líneas problemáticas:

buildTypes {
    debug {
        minifyEnabled true

Cámbialos a:

buildTypes {
    debug {
        minifyEnabled false
        debuggable true

Luego sincronice un gradle con el botón "Sincronizar proyecto con archivos Gradle". Si después de reiniciar la aplicación, aparece un error: "Error: el número de referencias de métodos en un archivo .dex no puede exceder los 64K. Aprenda cómo resolver este problema en https://developer.android.com/tools/building/ multidex.html ", luego, como en El número de referencias de método en un archivo .dex no puede exceder los 64k API 17, agregue las siguientes líneas a build.gradle:

android {

    defaultConfig {
        ...

        // Enabling multidex support.
        multiDexEnabled true
    }
    ...
}

dependencies {
    implementation 'com.android.support:multidex:1.0.2'
}

ACTUALIZAR

De acuerdo con https://developer.android.com/studio/build/multidex.html, haga lo siguiente para habilitar el soporte multidex por debajo de Android 5.0. De lo contrario, no se iniciará en estos dispositivos.

Abra AndroidManifesty busque la etiqueta <application>. Near android:name=es una referencia a una clase Application. Abra esta clase. Amplíe la clase de aplicación con MultiDexApplicationlo siguiente:

public class MyApplication extends MultiDexApplication { ... }

Si no se estableció ninguna clase de aplicación, escriba así:

<application
        android:name="android.support.multidex.MultiDexApplication" >
    ...
</application>
CoolMind
fuente
2

Asegúrese de habilitar el modo de desarrollador y la depuración de USB en el dispositivo o emulador. (Fácil de olvidar al configurar uno nuevo).

Ken Root
fuente
2

También debe tener Herramientas-> Android-> Habilitar integración ADB activa.

NSK
fuente
2

Pude solucionarlo yendo a Ejecutar -> Editar configuraciones, seleccionando mi proyecto, seleccionando la pestaña Depurador, luego cambiando 'Tipo de depuración' de 'Auto' a 'Dual':ingrese la descripción de la imagen aquí

Bajrang Hudda
fuente
1

Esto resolvió mi problema. Desinstale la aplicación del dispositivo y ejecútela nuevamente a través de Android Studio.

Ahmad Behzadi
fuente
1

Para mí, sucedió cuando usé Proguard, así que al probar todas las soluciones, limpié mi proyecto y presioné el botón de depuración en Android Studio y comenzó a depurar

Naveed Ahmad
fuente
1
Me enfrenté a este problema en Android Studio 4.1 y su solución me ayudó. Gracias
Buckstabue
1

En mi caso, tuve que eliminar el proguard en el tipo de compilación de depuración borrando completamente el archivo de texto proguard-rules.proy minifyEnabled falsecreando el archivo build.gradle

  debug {
            debuggable true
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
Sachin K
fuente
1
<application android:debuggable="true">
</application>

Ese código anterior ya no es una solución. Debe habilitar la depuración dentro de su archivo build.gradle. Si tiene diferentes tipos de compilación, asegúrese de establecer "debuggable true" en uno de los tipos de compilación. Aquí hay un código de muestra de uno de mis proyectos.

buildTypes {
    debug {
        debuggable true
    }

    release {
        debuggable false
    }
}

** He eliminado otras líneas dentro de buildTypes que no son relevantes para esta pregunta de mi archivo gradle aquí.

También asegúrese de seleccionar la variante de compilación correcta en su estudio de Android mientras realiza la depuración.

ingrese la descripción de la imagen aquí

Prakash
fuente
1

A lo largo de los años, he visitado este hilo muchas veces y siempre hubo una respuesta diferente que me ayudó. Esta vez me di cuenta de que era mi concentrador USB el que impedía que el depurador funcionara correctamente. Por extraño que parezca, en lugar de tener un teléfono conectado a mi computadora a través de un concentrador USB, tuve que conectarlo directamente a mi Mac y la depuración comenzó a funcionar.

vanomart
fuente
1

En mi caso, olvidé minifyEnabled = true y shrinkResources = true en mi debug buildType. Cambio estos valores a falso, ¡ha funcionado de nuevo!

ingrese la descripción de la imagen aquí

Asignar
fuente
0

Aquí hay un pequeño error que puede atrapar algunos: es bastante fácil tener accidentalmente un filtro escrito para la ventana de salida de logcat (el cuadro de texto con la lupa) y olvidarse de él. Eso que potencialmente filtrará toda la salida y hará que parezca que no hay nada allí.

Rick Giuly
fuente
0

En mi caso tuve el mismo problema porque intento depurar apk firmado. En mi configuración de gradle hice diferentes variantes de compilación e intenté depurar la compilación de lanzamiento con la producción keystore.jks

WorieN
fuente
0

Lo que funcionó para mí en Android Studio 3.2.1

Estaba:

RUN -> Attach debugger to Android Process --> com.my app

Kevin Amiranoff
fuente
0

Reinicie el servidor adb, desde Android Studio: Herramientas -> " Conexión de dispositivo de resolución de problemas "

Webdma
fuente