Pyjnius: Excepción llamando a PythonActivity.getWindow().setSoftInputMode(...)

Creado en 22 mar. 2019  ·  5Comentarios  ·  Fuente: kivy/pyjnius

Recibo un error de pyjnius con muchos accesos a métodos de clase que espero que funcionen:

Traceback (most recent call last):
  File "jnius/jnius_export_class_pxi", line 752, in jnius.jnius.JavaMethod.__call__
  File "jnius/jnius_export_class.pxi", line 699, in jnius.jnius.JavaMethod.ensure_method
jnius.jnius.JavaException: Unable to find a None method!

Pasos para reproducir:

  1. Haz una nueva carpeta con este main.py :
from jnius import autoclass
python_activity = autoclass('org.kivy.android.PythonActivity')
window = python_activity.getWindow()
window.setSoftInputMode(16)  # SOFT_INPUT_ADJUST_RESIZE
  1. Paquete como .apk :
    p4a apk --arch=armeabi-v7a --name test --package com.example.test --version 1 --requirements=kivy,python2 --private . (o python 3, es posible que deba agregar argumentos api y/o ndk api si no están configurados en su ruta)

  2. Ejecute y espere hasta que finalice instantáneamente, y luego verifique logcat. Verás esto:

Traceback (most recent call last):
  File "jnius/jnius_export_class_pxi", line 752, in jnius.jnius.JavaMethod.__call__
  File "jnius/jnius_export_class.pxi", line 699, in jnius.jnius.JavaMethod.ensure_method
jnius.jnius.JavaException: Unable to find a None method!

Comentario más útil

cerrando como si no fuera un error en pyjnius, comente o vuelva a abrir si cree que esto está mal.

Todos 5 comentarios

Ok, realicé una buena depuración de impresiones antiguas y la línea exacta que falla es window = python_activity.getWindow() , o en un contexto más amplio:

https://github.com/wobblui/wobblui/blob/653d6db66f60b3bc4165e68440ddfbe8d1460904/src/wobblui/sdlinit.pyx#L60

Sin embargo, no puedo pensar en un caso en el que el Activity (del que se derivan PythonActivity / SDLActivity ) no tenga getWindow() como se documenta aquí: https://developer.android.com/reference/android/app/Activity#getWindow ()

¿Es esto un error entonces?

FWIW, se encontró con el mismo error con https://github.com/kivy/python-for-android/pull/1772 . ¿Alguien tiene idea de si se trata de un error de Pyjnius o de un error de usuario de mi parte?

El error aquí es llamar al método en la clase de Actividad, no en la instancia, se puede acceder a la instancia a través del atributo mActivity .

aquí hay un ejemplo de código de trabajo https://gist.github.com/47b7b18855b38de3730e081682c558ce

Esperemos que logre lo que está tratando de hacer :).

cerrando como si no fuera un error en pyjnius, comente o vuelva a abrir si cree que esto está mal.

@tshirtman :globo: :tada: gracias :corazon:

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

stania picture stania  ·  6Comentarios

tom19952000 picture tom19952000  ·  15Comentarios

Thrameos picture Thrameos  ·  27Comentarios

cthoyt picture cthoyt  ·  11Comentarios

cmacdonald picture cmacdonald  ·  20Comentarios