Android Debug La vista de la jerarquía del supervisor no se muestra

Estoy intentando conectar mi aplicación en ADM pero desafortunadamente la visión de la jerarquía no está demostrando. ¿Cómo debo conectar mi aplicación a la herramienta ADM?

Dispositivo: Nexus 4

Os: 4.3.3

Error:

[2014-02-06 13:00:14 - hierarchyviewer]Missing forwarded port for 021df5e049116bac [2014-02-06 13:00:14 - hierarchyviewer]Unable to get view server version from device 021df5e049116bac [2014-02-06 13:00:14 - hierarchyviewer]Missing forwarded port for 021df5e049116bac [2014-02-06 13:00:14 - hierarchyviewer]Unable to get view server protocol version from device 021df5e049116bac [2014-02-06 13:00:14 - ViewServerDevice]Unable to debug device: lge-nexus_4-021df5e049116bac 

Consulte Perfil de su diseño con el Visor de jerarquía para el uso del visor de jerarquía.

Hoy uso el visor de la jerarquía con mi app, y consigo el problema muy similar en silulator y el dispositivo verdadero, con el visor de la jerarquía ventana de la ventana del árbol negro.

Nota: Para la versión más reciente de android studio, puedes abrir el visor de jerarquías con Tools > Android > Android Device Monitor > Window > Open Perspective... > Hierarchy View

Introduzca aquí la descripción de la imagen

A continuación le mostraré cómo resolver el problema en silulator y dispositivo real.

Info: el modo de depuración del dispositivo está activado, no compruebo si tiene influencia en el siguiente resultado.

un). Comprobar si el dispositivo ha abierto el servidor de vista

 bogon:~ roofe$ adb shell service call window 3 Result: Parcel(00000000 00000000 '........') 

Nota: si obtiene

No se puede encontrar el comando adb

Adb suele estar en el camino de sdk, el mío está en /Users/roofe/Library/Android/sdk/platform-tools/adb . A continuación, puede añadirlo a la ruta de acceso o crear un alias para ello.

Puse alias adb='/Users/roofe/Library/Android/sdk/platform-tools/adb' en el .bash_profile debajo de la ruta del usuario, luego source ./.bash_profile . Aquí el comando adb debería funcionar.

Información de salida:

Ver servidor desactivado: Result: Parcel(00000000 00000000 '........')

Ver servidor en: Result: Parcel(00000000 00000001 '........')

Si el servidor de vistas está activado, el visualizador de jerarquía debería funcionar bien. Y no es necesario que lea a continuación.

Desafortunadamente, si su servidor de vista está apagado, continúe. Ambos servidor de vista de mi simulador y dispositivo de lectura están apagados.

segundo). Comenzar a ver el servidor

 bogon:~ roofe$ adb shell service call window 1 i32 4939 Result: Parcel(00000000 00000001 '........') 

Si el resultado es Result: Parcel(00000000 00000001 '........') , se ha iniciado el servidor de vistas. Si bien el resultado es Result: Parcel(00000000 00000000 '........') , no se puede iniciar el servidor de vistas.

También puede apagar el servidor de

 adb shell service call window 2 i32 4939 

Aquí ejecuta el comando dos veces para apagarlo, tal vez hay un tiempo de ejecución aquí.

 bogon:~ roofe$ adb shell service call window 2 i32 4939 Result: Parcel(00000000 00000001 '........') bogon:~ roofe$ adb shell service call window 2 i32 4939 Result: Parcel(00000000 00000000 '........') 

La mayoría del dispositivo real no puede iniciar el servidor de vistas. Por seguridad, Android en el dispositivo real tienen restringir en esto. Puede encontrar el código relativo en el archivo WindowManageService.java código fuente de Andorid

 if (!checkCallingPermission(Manifest.permission.DUMP, "startViewServer")) { return false; } 

Así que si eres un cracker genio, puedes root tu dispositivo para eliminar este restringir. No lo he conseguido. Si tu intento tiene éxito, muéstrame. Seré muy apreciado en su trabajo elegante.

Aquí mi simulador funciona. Mientras dispositivo real no. Si su servidor de vista sigue apagado, continúe.

do). Utilizando el protocolo ddm , un método del doc de Android studio doc Perfile su diseño con el visualizador de jerarquía

Si está utilizando el emulador de Android, puede omitir esta sección. De lo contrario, debe configurar su dispositivo de la siguiente manera.

Nota: tu dispositivo debe tener instalado Android 4.1 o una versión superior.

Habilitar las Opciones para programadores en tu dispositivo.

Establezca la variable de entorno ANDROID_HVPROTO = ddm en su máquina de desarrollo.

Esta variable le dice a Jerarchy Viewer que se conecte al dispositivo usando el protocolo ddm, que es el mismo que el protocolo DDMS. La advertencia es que sólo puede haber un proceso en el host que se conecta al dispositivo, por lo que debe eliminar cualquier otra sesión de DDMS para ejecutar el Visor de Jerarquía.

Agregue la export ANDROID_HVPROTO=ddm a su .bash_profile luego fuente ./.bash_profile .

Quite la aplicación instalada y reinicie Android Studio , luego instale su aplicación y puede verla ahora.

Nota: configuro el ddm sin reiniciar Android Studio a, no puedo verlo en jerarquía. Un día después, me doy cuenta, y hago algunas pruebas. Me funda después de establecer el ppm, es mejor reiniciar el estudio de Android. Supongo que cuando el inicio de estudio de Android va a leer que la configuración, puede almacenarla en caché.

No lo probé sin desinstalar la aplicación.

re). Configurar un servidor de vistas

Por favor, no se sienta frustrado aquí. Para iniciar un servidor de vista es muy fácil.

Herramienta: ViewServer en github

Agregue esto a su build.gradle

 allprojects { repositories { jcenter() maven {url "https://jitpack.io"} } } dependencies { ... compile 'com.github.romainguy:ViewServer:017c01cd512cac3ec054d9eee05fc48c5a9d2de' } 

Agregar permiso de INTERNET en el archivo de manifest

 <uses-permission android:name="android.permission.INTERNET" /> 

A continuación registe el servidor de vistas a la actividad que desea inspeccionar

 public class MyActivity extends Activity { public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // Set content view, etc. ViewServer.get(this).addWindow(this); } public void onDestroy() { super.onDestroy(); ViewServer.get(this).removeWindow(this); } public void onResume() { super.onResume(); ViewServer.get(this).setFocusedWindow(this); } } 

Por ahora, puedo ejecutar la vista de jerarquía en mi dispositivo real.

Introduzca aquí la descripción de la imagen

Últimas Android SDK Tools 25.3.0 eliminar hierarchyviewer puede encontrar herramientas SDK cambios aquí

Intente reinstalar controladores de dispositivo. A continuación, asegúrese de que adb esté funcionando y, a continuación, debería poder conectarse correctamente a través del administrador de dispositivos.

  • El explorador de archivos DDMS no puede acceder a data \ data (HTC Desire HD)
  • Ver contenido del archivo de base de datos en Android Studio
  • Objetos de hilo no recogidos después de finalizado
  • Android DDMS: envía llamadas al dispositivo actual
  • No hay lista de dispositivos en Android DDMS
  • ¿Por qué DDMS desactivará la integración de ADB en android studio
  • Android Monitor.bat no se está ejecutando
  • ¿Cómo puedo leer mi base de datos de DDMS
  • ¿Cómo automatizar el mecanismo de instantánea DDMS?
  • Cambiar permisos de archivo en DDMS (Android)
  • Fuente DDMS / Extensión DDMS
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.