Roku App Development: Common Problems and Debugging
Roku App Development: Common Problems and Debugging
Con nuestro intenso desarrollo de aplicaciones Roku, capturamos todos los problemas comunes y sus soluciones. Aquí hay una lista rápida a la que puede referirse como punto de partida si se encuentra con un problema.
Depurar su aplicación
Primero, para comenzar, debe aprender a depurar una aplicación Roku. Hay una variedad de puertos disponibles para depurar el canal Roku. Usando la consola de depuración y estos puertos podemos depurar dicho canal. La consola de depuración proporciona una ventana para mostrar los registros de bloqueo, los rastreos de stack y mucho más durante el tiempo de ejecución. Para obtener más información sobre la depuración puede consultar en este enlace
https://sdkdocs.roku.com/display/sdkdoc/Debugging+Your+Application para aprender más sobre la depuración.
Acceder a la consola de depuración
Puede conectarse fácilmente con la consola de depuración de su aplicación, mediante el uso de un shell estándar proporcionado en el sistema operativo de su computadora y la aplicación cliente de Telnet.
Abrir una consola
Para acceder a la consola de su aplicación, abra una aplicación del terminal shell, por ejemplo, una de las siguientes opciones:
- En Windows, Todos los Programs -> Accesorios -> Comando Prompt
- En linux, Gnome u otro terminal
- En Mac, terminal
Escriba el comando
telnet rokuPlayer-ip-address port_number
Por ejemplo: telnet 192.168.1.100 8085
Puertos de depuración
Hay 3 puertos utilizados para depurar el canal Roku.
- 8080 para el servidor de depuración, que contiene una serie de utilidades.
- 8085 para la consola BrightScript, que permite acceso al entorno de tiempo de ejecución BrightScript.
- 8087 para Screensaver, ese es el punto de partida para protectores de pantalla.
Depuración de aplicaciones de SceneGraph
Además, hay algunos comandos de depuración especiales para depurar aplicaciones de SceneGraph. Para utilizar estos comandos, debe abrir la consola y escribir los comandos que se detallan a continuación. De nuevo, para conectar a la consola, ejecute la siguiente línea y luego ejecute los comandos relevantes: telnet rokuPlayer-ip-address 8080
Estos comandos son:
- sgnodes all: Imprime cada nodo existente creado por el canal actualmente en ejecución.
- sgnodes roots: Imprime cada nodo existente sin un padre creado por el canal que se está ejecutando actualmente.
- sgnodes node_ID: Imprime nodos con un campo de ID establecido en node_ID, excepto que omite todas las jerarquías y reglas, y simplemente ejecuta toda la lista en orden de creación de nodos.
- loaded_textures: Muestra el conjunto actual de imágenes cargadas en la memoria de textura.
- sgversion [default | force []]: Cuando el primer parámetro es el predeterminado, establece la rsg_version predeterminada de un canal cuando no está especificado en el manifiesto.
Puede encontrar más acerca de estos comandos aquí:
https://sdkdocs.roku.com/display/sdkdoc/Debugging+SceneGraph+Applications
Solución de problemas de errores comunes de desarrollo
Hay varios errores muy comunes durante el desarrollo de la aplicación SceneGraph. Aquí hay algunos que encontramos muy frecuentemente.
Tipo de Desajuste
Este error se produce porque la variable BrightScript se ha deletreado incorrectamente después de haber sido declarada, nunca declarada, o declarada como una variable local en otra función. En la consola de depuración se muestra la variable local utilizada en el momento del error y la variable enumerada como no inicializada. Para resolver este error, se debe declarar la variable o variables enumeradas anteriormente en la aplicación antes del mensaje y antes de corregir la ortografía, o declarar luego correctamente, o declarar la variable utilizando la referencia de objeto m que da el alcance del archivo variable.
Operador ‘Dot’ intentado con Componente BrightScript no válido o referencia de interfaz
Este error se produce debido a que un componente con ese nombre no se ha creado o se intenta acceder a un componente que utiliza un nombre de componente incorrectamente escrito. En la consola de depuración, se muestran los objetos componentes y las variables utilizadas en el momento del error, y se observan los objetos componentes enumerados como no válidos. Para resolver este error, se debe corregir la falta de coincidencia entre el nombre del componente y el argumento de la función de creación del objeto componente y corregir la ortografía del nombre del componente que distingue entre mayúsculas y minúsculas en el archivo componente o en el punto donde intentó crear el objeto componente .
La imagen gráfica no aparece, aparece el signo de interrogación en lugar de la imagen
Este error se produce debido a que el archivo de imagen gráfica no se encontró en la ubicación especificada en la aplicación. En la consola de depuración, la imagen gráfica no se encuentra o no se encuentra la ruta. Para resolver el error, se debe verificar que el archivo de imagen esté en la ubicación especificada o la ruta y la ortografía del nombre de archivo para asegurarse de que aparezca la imagen gráfica correcta.
Lista o cuadrícula no aparece, o el primer elemento está vacio o falta información
Este error se produce debido a que el nodo ContentNode asignado al campo de contenido de la lista o cuadrícula no existe o se asignó después de establecer el foco en la lista o cuadrícula. Para resolver este error, se debe verificar que el nodo ContentNode se haya creado correctamente en el momento en que se asignó al campo de lista o al contenido de cuadrícula y establecer el foco en la grilla o lista después de asignarle un nodo ContentNode válido al campo de contenido.
Tiempo de espera de ejecución (error de tiempo de ejecución & h23)
Este error se produce debido al tiempo de cálculo y a la llamada más recursiva. En la consola de depuración, se muestra que el número de línea en el que se detecta el error se marcará con un asterisco y el mensaje proporcionará el nombre de la función. Existe una forma de lograr multi threading (solo en esencia no en realidad), es decir, nodo de tarea (lea roku SDK para más información). Para resolver este error, se debe crear el nodo de tarea y realizar el trabajo de operaciones de cálculo basado en el nodo de tarea.
Desbordamiento de stack (error de tiempo de ejecución y hdf)
Este error ocurre debido a que se excede el tamaño del stack. Para resolver este error, debe reducir la llamada recursiva.