Π― ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΡ 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: ΡΠΏΠ°ΡΠΈΠ±ΠΎ :heart:
Π‘Π°ΠΌΡΠΉ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ
Π·Π°ΠΊΡΡΡΠΈΠ΅ ΠΊΠ°ΠΊ Π½Π΅ ΠΎΡΠΈΠ±ΠΊΠ° Π² pyjnius, ΠΏΠΎΠΆΠ°Π»ΡΠΉΡΡΠ°, ΠΏΡΠΎΠΊΠΎΠΌΠΌΠ΅Π½ΡΠΈΡΡΠΉΡΠ΅ ΠΈΠ»ΠΈ ΡΠ½ΠΎΠ²Π° ΠΎΡΠΊΡΠΎΠΉΡΠ΅, Π΅ΡΠ»ΠΈ Π²Ρ ΡΡΠΈΡΠ°Π΅ΡΠ΅, ΡΡΠΎ ΡΡΠΎ Π½Π΅ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ.