programacion - No es posible depurar la aplicación en Android Studio
manual de programacion android pdf (25)
Estoy haciendo 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, aparece logcat y reconoce mi dispositivo. Entonces veo esto:
¿Qué debo hacer con mi aplicación para que sea "depurable"?
FYI estaba desarrollando esta aplicación en Eclipse antes y adb funcionó bien.
¡Probé todas las formas y ninguna de ellas funcionó!
finalmente tuvo que cambiar el puerto adb y funcionó. primero mata el servidor adb como a continuación:
adb kill-server
luego reinícielo usando otro puerto
adb -P 5038 start-server
Aquí hay algunas cosas que pueden atrapar: es muy fácil tener accidentalmente un filtro ingresado para la ventana de salida del logcat (el cuadro de texto con la lupa) y olvidarlo. Lo que potencialmente filtrará toda la salida y hará que parezca que nada está allí.
Asegúrese de haber habilitado la integración de ADB.
En Menú: Herramientas -> Android -> Habilitar integración ADB (v1.0)
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).
El ícono "Adjuntar depurador al proceso de Android" debería usarse en caso de que establezca "android: process" personalizado en su archivo Manifest.
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".
En mi caso tuve el mismo problema porque trato de depurar la aplicación firmada. En mi configuración de Gradle, hice diferentes variantes de compilación e intenté depurar la versión de lanzamiento con producción keystore.jks
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ó ningún código ejecutable en la línea ..." como en Android studio gradle breakpoint. No se encontró código ejecutable en la línea .
Un problema apareció después de la actualización de build.gradle
. Incluimos el soporte de Kotlin, por lo que una cantidad de métodos excedió los 64K. Líneas de problemas:
buildTypes {
debug {
minifyEnabled true
Cambiarlos a:
buildTypes {
debug {
minifyEnabled false
debuggable true
Luego sincronice un gradle con un botón "Sync Project with Gradle Files". Si después de reiniciar su aplicación, obtendrá un error: "Error: el número de referencias de métodos en un archivo .dex no puede superar los 64 K. Aprenda a resolver este problema en https://developer.android.com/tools/building/multidex.html ", entonces, como en El número de referencias de métodos en un archivo .dex no puede exceder 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
Según 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 comenzará en estos dispositivos.
Abra AndroidManifest
y busque la etiqueta <application>
. Near android:name=
es una referencia a una clase de aplicación. Abre esta clase. Extienda la clase de aplicación con MultiDexApplication
modo que:
public class MyApplication extends MultiDexApplication { ... }
Si no hay clase de aplicación establecida, escríbala de la siguiente manera:
<application
android:name="android.support.multidex.MultiDexApplication" >
...
</application>
En mi caso, tuve que eliminar el protector en el tipo de compilación de depuración al borrar por completo el archivo de texto proguard-rules.pro
y hacer que minifyEnabled false
en el archivo build.gradle
debug {
debuggable true
minifyEnabled false
proguardFiles getDefaultProguardFile(''proguard-android.txt''), ''proguard-rules.pro''
}
Esto funcionó para mí:
- Cierre Android Studio.
Abre el shell y escribe:
adb kill-server
adb start-server
Esto me pasa de vez en cuando y aún no entiendo por qué. Ninguna de las soluciones ya publicadas me funcionó. Lo único que funciona para mí es:
- Desinstalar la aplicación del dispositivo.
- Proyecto limpio. "Build -> Clean Project".
- Reconstruye e instala.
Esto resolvió mi problema. Desinstalar la aplicación del dispositivo y ejecutarla de nuevo a través de Android studio.
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 se parece a un botón de reproducción). Intente iniciar la aplicación con eso.
Editar: Lo siguiente está obsoleto cuando se usa Android Studio con Gradle.
También hay un indicador de depuración en el archivo AndroidManifest.xml . Se encuentra debajo de la etiqueta de la aplicación y debe establecerse en "verdadero" de la siguiente manera:
<application android:debuggable="true">
</application>
Hice la construcción limpia usando el comando debajo ... Sorprendentemente funcionó.
sh gradlew construcción limpia
¡Espero que alguien obtenga ayuda!
Otra cosa a tener cuidado de (hice esto, así que sé, duh). ¡Asegúrese de no habilitar Proguard para la depuración!
Para mí, sucedió cuando utilicé Proguard, así que al probar todas las soluciones, limpié mi proyecto y presioné el botón de depuración en Android Studio y comenzó la depuración.
Resolví este problema después de hacer los siguientes pasos:
Vaya a Herramientas ==> android ==> Inhabilite la integración de ADB y habilítela de nuevo.
Después de eso, desconecta el USB del dispositivo y vuelve a enchufarlo.
Finalmente presione shift + F9
Si su aplicación solía ser depurable, y de repente ya no se puede depurar. Aquí está mi solución
- deshabilite y habilite el interruptor de
USB debug
en su teléfono. - Desinstala tu aplicación
- haga clic en Ejecutar en Android Studio.
También asegúrese de no estar usando otras aplicaciones que también podrían estar usando ADB, como Eclipse, por ejemplo.
También debe tener Herramientas-> Android-> Habilitar integración de ADB activa.
También tuve aleatoriamente este problema incluso después de la depuración muchas veces en Android Studio. Un día, el depurador simplemente no se adjuntó. Simplemente tuve que salir de Android Studio y volver a abrirlo y el depurador comenzó a funcionar nuevamente.
Tuve el mismo problema y probé casi todo tipo de soluciones a través de Google. Pero no pude resolverlo. Finalmente, encontré la solución. Este es el error de Android Studio.
No haga clic en Run
(Alt + F10)
- simplemente haga clic en Debug
(Shift + F9)
.
Luego, Android Studio le mostrará el mensaje de advertencia con ADB, luego haga clic en "Aceptar".
Puede ver iniciar sesión en la consola de Logcat. Y los paquetes se mostrarán en DDMS (dispositivos).
Un caso en el que no se puede depurar una aplicación en Android Studio es cuando se selecciona la variante de compilación "liberar". Me sucedió: Gradle crea una versión de lanzamiento de la aplicación (que no es depurable) y luego Android Studio falla al intentar conectar el depurador.
Si habilitas
<application android:debuggable="true">
</application>
En la aplicación manifest.xml, asegúrese de deshabilitarla cuando genere la aplicación final firmada, ya que esto puede servir como un agujero en el bucle 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
<application android:debuggable="true">
</application>
¡Esto ya no funciona! No es necesario usar debuggable = "true" en el manifiesto.
En su lugar, debe configurar las Variantes de compilación para "depurar"
En Android Studio, vaya a CONSTRUIR -> Seleccionar variante de compilación
Ahora prueba la depuración. Gracias