Pyjnius: Exceção chamando PythonActivity.getWindow().setSoftInputMode(...)

Criado em 22 mar. 2019  ·  5Comentários  ·  Fonte: kivy/pyjnius

Recebo um erro pyjnius com muitos acessos ao método de classe que espero funcionar:

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!

Passos para reproduzir:

  1. Crie uma nova pasta com 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. Pacote como .apk :
    p4a apk --arch=armeabi-v7a --name test --package com.example.test --version 1 --requirements=kivy,python2 --private . (ou python 3, você pode precisar adicionar argumentos api e/ou ndk api se eles não estiverem definidos em seu caminho)

  2. Execute e espere até que ele termine instantaneamente e, em seguida, verifique o logcat. Você verá isso:

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!

Comentários muito úteis

fechando como não é um bug no pyjnius, por favor comente ou reabra se você acha que isso está errado.

Todos 5 comentários

Ok, eu fiz uma boa e velha depuração de impressão e a linha exata de falha é window = python_activity.getWindow() , ou em um contexto maior:

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

No entanto, não consigo pensar em um caso em que o Activity (do qual PythonActivity / SDLActivity deriva) não teria getWindow() conforme documentado aqui: https://developer.android.com/reference/android/app/Activity#getWindow ()

Isso é um bug então?

FWIW, encontrou o mesmo erro com https://github.com/kivy/python-for-android/pull/1772 . Alguém tem uma idéia se isso é um bug pyjnius ou um erro do usuário do meu lado?

O erro aqui é chamar o método na classe Activity, não na instância, a instância é acessível através do atributo mActivity .

aqui está um exemplo de código de trabalho https://gist.github.com/47b7b18855b38de3730e081682c558ce

espero que consiga o que você está tentando fazer :).

fechando como não é um bug no pyjnius, por favor comente ou reabra se você acha que isso está errado.

@tshirtman :balloon: :tada: obrigado :heart:

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

hanslovsky picture hanslovsky  ·  3Comentários

tshirtman picture tshirtman  ·  23Comentários

stania picture stania  ·  6Comentários

Thrameos picture Thrameos  ·  27Comentários

enjoybeta picture enjoybeta  ·  8Comentários