J'obtiens une erreur pyjnius avec de nombreux accès aux méthodes de classe que je m'attends à fonctionner :
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!
Étapes à reproduire :
main.py
:from jnius import autoclass
python_activity = autoclass('org.kivy.android.PythonActivity')
window = python_activity.getWindow()
window.setSoftInputMode(16) # SOFT_INPUT_ADJUST_RESIZE
Forfait en .apk
:
p4a apk --arch=armeabi-v7a --name test --package com.example.test --version 1 --requirements=kivy,python2 --private .
(ou python 3, vous devrez peut-être ajouter des arguments api et/ou ndk api si ceux-ci ne sont pas définis dans votre chemin)
Exécutez et attendez qu'il se termine instantanément, puis vérifiez logcat. Vous verrez ceci :
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!
Ok, j'ai fait un bon vieux débogage d'impression et la ligne de plantage exacte est window = python_activity.getWindow()
, ou dans un contexte plus large :
Cependant, je ne peux pas penser à un cas où le Activity
(dont dérivent PythonActivity
/ SDLActivity
) n'aurait pas getWindow()
comme documenté ici : https://developer.android.com/reference/android/app/Activity#getWindow ()
C'est un bug alors ?
FWIW, a rencontré la même erreur avec https://github.com/kivy/python-for-android/pull/1772 . Quelqu'un a-t-il une idée s'il s'agit d'un bogue pyjnius ou d'une erreur de l'utilisateur de mon côté ?
L'erreur ici est d'appeler la méthode sur la classe Activity, pas l'instance, l'instance est accessible via l'attribut mActivity
.
voici un exemple de code fonctionnel https://gist.github.com/47b7b18855b38de3730e081682c558ce
j'espère qu'il réalisera ce que vous essayez de faire :).
fermeture comme n'étant pas un bogue dans pyjnius, veuillez commenter ou rouvrir si vous pensez que c'est faux.
@tshirtman :ballon: :tada: merci :coeur:
Commentaire le plus utile
fermeture comme n'étant pas un bogue dans pyjnius, veuillez commenter ou rouvrir si vous pensez que c'est faux.