動作すると予想される多くのクラスメソッドアクセスでpyjniusエラーが発生します。
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!
再現する手順:
main.py
で新しいフォルダを作成します:from jnius import autoclass
python_activity = autoclass('org.kivy.android.PythonActivity')
window = python_activity.getWindow()
window.setSoftInputMode(16) # SOFT_INPUT_ADJUST_RESIZE
.apk
としてパッケージ化:
p4a apk --arch=armeabi-v7a --name test --package com.example.test --version 1 --requirements=kivy,python2 --private .
(またはpython 3、パスにapiやndk api引数が設定されていない場合は、これらを追加する必要がある場合があります)
実行して、すぐに終了するまで待ってから、logcatを確認します。 あなたはこれを見るでしょう:
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!
さて、私はいくつかの古き良き印刷デバッグを行いました、そして正確なクラッシュラインはwindow = python_activity.getWindow()
、またはより大きな文脈では:
ただし、ここに記載されているように、 Activity
( PythonActivity
/ SDLActivity
から派生)にgetWindow()
がない場合は考えられません。 https://developer.android.com/reference/android/app/Activity#getWindow ()
これはバグですか?
FWIW、 https://github.com/kivy/python-for-android/pull/1772で同じエラーが発生しました。 これがpyjniusのバグなのか、私の側のユーザーエラーなのか、手がかりを持っている人はいますか?
ここでのエラーは、インスタンスではなく、Activityクラスのメソッドを呼び出していることです。インスタンスには、 mActivity
属性を介してアクセスできます。
これが実用的なコード例ですhttps://gist.github.com/47b7b18855b38de3730e081682c558ce
うまくいけば、それはあなたがやろうとしていることを達成します:)。
pyjniusのバグではないので閉じます。これが間違っていると思われる場合は、コメントするか、再度開いてください。
@tshirtman :balloon :: tada:thanks:heart:
最も参考になるコメント
pyjniusのバグではないので閉じます。これが間違っていると思われる場合は、コメントするか、再度開いてください。