Pyjnius: Pengecualian memanggil PythonActivity.getWindow().setSoftInputMode(...)

Dibuat pada 22 Mar 2019  ·  5Komentar  ·  Sumber: kivy/pyjnius

Saya mendapatkan kesalahan pyjnius dengan banyak akses metode kelas yang saya harapkan berfungsi:

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!

Langkah-langkah untuk mereproduksi:

  1. Buat folder baru dengan main.py ini :
from jnius import autoclass
python_activity = autoclass('org.kivy.android.PythonActivity')
window = python_activity.getWindow()
window.setSoftInputMode(16)  # SOFT_INPUT_ADJUST_RESIZE
  1. Paket sebagai .apk :
    p4a apk --arch=armeabi-v7a --name test --package com.example.test --version 1 --requirements=kivy,python2 --private . (atau python 3, Anda mungkin perlu menambahkan argumen api dan/atau ndk api jika ini tidak disetel di jalur Anda)

  2. Jalankan dan tunggu hingga instant-terminates, lalu periksa logcat. Anda akan melihat ini:

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!

Komentar yang paling membantu

menutup sebagai bukan bug di pyjnius, silakan beri komentar atau buka kembali jika menurut Anda ini salah.

Semua 5 komentar

Oke, saya melakukan beberapa debugging cetak lama yang bagus dan baris mogok yang tepat adalah window = python_activity.getWindow() , atau dalam konteks yang lebih besar:

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

Namun, saya tidak dapat memikirkan kasus di mana Activity (yang PythonActivity / SDLActivity berasal) tidak akan memiliki getWindow() seperti yang didokumentasikan di sini: https://developer.android.com/reference/android/app/Activity#getWindow ()

Apakah ini bug?

FWIW, mengalami kesalahan yang sama dengan https://github.com/kivy/python-for-Android/pull/1772 . Adakah yang tahu apakah ini bug pyjnius atau kesalahan pengguna di pihak saya?

Kesalahan di sini adalah memanggil metode pada kelas Aktivitas, bukan instance, instance dapat diakses melalui atribut mActivity .

di sini adalah contoh kode kerja https://Gist.github.com/47b7b18855b38de3730e081682c558ce

mudah-mudahan tercapai apa yang Anda coba lakukan :).

menutup sebagai bukan bug di pyjnius, silakan beri komentar atau buka kembali jika menurut Anda ini salah.

@tshirtman :balon: :tada: terima kasih :hati:

Apakah halaman ini membantu?
0 / 5 - 0 peringkat