Ich erhalte einen Pyjnius-Fehler mit vielen Zugriffen auf Klassenmethoden, von denen ich erwarte, dass sie funktionieren:
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!
Schritte zum Reproduzieren:
main.py
:from jnius import autoclass
python_activity = autoclass('org.kivy.android.PythonActivity')
window = python_activity.getWindow()
window.setSoftInputMode(16) # SOFT_INPUT_ADJUST_RESIZE
Paket als .apk
:
p4a apk --arch=armeabi-v7a --name test --package com.example.test --version 1 --requirements=kivy,python2 --private .
(oder Python 3, möglicherweise müssen Sie api- und/oder ndk-api-Argumente hinzufügen, wenn diese nicht in Ihrem Pfad festgelegt sind)
Führen Sie es aus und warten Sie, bis es sofort beendet wird, und überprüfen Sie dann logcat. Sie werden Folgendes sehen:
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, ich habe ein gutes altes Druck-Debugging durchgeführt und die genaue abstürzende Zeile ist window = python_activity.getWindow()
oder in größerem Zusammenhang:
Mir fällt jedoch kein Fall ein, in dem Activity
(von dem PythonActivity
/ SDLActivity
abgeleitet sind) nicht getWindow()
hätte, wie hier dokumentiert: https://developer.android.com/reference/android/app/Activity#getWindow ()
Ist das dann ein Bug?
FWIW, lief auf den gleichen Fehler mit https://github.com/kivy/python-for-android/pull/1772 . Hat jemand eine Ahnung, ob dies ein Pyjnius-Fehler oder ein Benutzerfehler auf meiner Seite ist?
Der Fehler hier ist das Aufrufen der Methode für die Aktivitätsklasse, nicht für die Instanz. Auf die Instanz kann über das Attribut mActivity
zugegriffen werden.
Hier ist ein funktionierendes Codebeispiel https://gist.github.com/47b7b18855b38de3730e081682c558ce
hoffentlich erreicht es das, was du zu tun versuchst :).
Schließen als kein Fehler in Pyjnius, bitte kommentieren oder erneut öffnen, wenn Sie der Meinung sind, dass dies falsch ist.
@tshirtman :ballon: :tada: danke :herz:
Hilfreichster Kommentar
Schließen als kein Fehler in Pyjnius, bitte kommentieren oder erneut öffnen, wenn Sie der Meinung sind, dass dies falsch ist.