Pyjnius: استثناء استدعاء PythonActivity.getWindow (). setSoftInputMode (...)

تم إنشاؤها على ٢٢ مارس ٢٠١٩  ·  5تعليقات  ·  مصدر: kivy/pyjnius

أحصل على خطأ 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!

خطوات التكاثر:

  1. أنشئ مجلدًا جديدًا باستخدام هذا 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. الحزمة كـ .apk :
    p4a apk --arch=armeabi-v7a --name test --package com.example.test --version 1 --requirements=kivy,python2 --private . (أو python 3 ، قد تحتاج إلى إضافة وسيطات api و / أو ndk api إذا لم يتم تعيينها في مسارك)

  2. قم بتشغيله وانتظر حتى ينتهي على الفور ، ثم تحقق من 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!

التعليق الأكثر فائدة

إغلاق باعتباره ليس خطأ في Pyjnius ، يرجى التعليق أو إعادة فتح إذا كنت تعتقد أن هذا خطأ.

ال 5 كومينتر

حسنًا ، لقد أجريت بعض عمليات تصحيح أخطاء الطباعة القديمة الجيدة وكان خط التعطل الدقيق هو window = python_activity.getWindow() ، أو في سياق أكبر:

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

ومع ذلك ، لا يمكنني التفكير في حالة لا يكون فيها Activity (الذي اشتُق منه PythonActivity / SDLActivity ) يحتوي على getWindow() كما هو موثق هنا: https://developer.android.com/reference/android/app/Activity#getWindow ()

هل هذا خطأ إذن؟

FWIW ، واجه نفس الخطأ مع https://github.com/kivy/python-for-android/pull/1772 . أي شخص لديه فكرة عما إذا كان هذا خطأ Pyjnius أو خطأ مستخدم من جانبي؟

الخطأ هنا هو استدعاء الطريقة في فئة النشاط ، وليس المثيل ، يمكن الوصول إلى المثيل من خلال السمة mActivity .

هنا مثال على كود العمل https://gist.github.com/47b7b18855b38de3730e081682c558ce

آمل أن تحقق ما تحاول القيام به :).

إغلاق باعتباره ليس خطأ في Pyjnius ، يرجى التعليق أو إعادة فتح إذا كنت تعتقد أن هذا خطأ.

tshirtman : بالون:: تادا: شكرا: القلب:

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات