أبلغ عنها مستخدم (Matrix0206 على الخلاف).
from android import request_permission, Permission
request_permissions([Permission.READ_EXTERNAL_STORAGE, Permission.WRITE_EXTERNAL_STORAGE])
05-22 20:08:20.301 10976 11090 I python : Traceback (most recent call last):
05-22 20:08:20.301 10976 11090 I python : File "/run/media/matrix/New_Volume/Developments/kivy-music-player/.buildozer/android/app/main.py", line 300, in <module>
05-22 20:08:20.301 10976 11090 I python : File "/run/media/matrix/New_Volume/Developments/kivy-music-player/.buildozer/android/platform/build-arm64-v8a/build/python-installs/music_player/kivy/app.py", line 949, in run
05-22 20:08:20.302 10976 11090 I python : File "/run/media/matrix/New_Volume/Developments/kivy-music-player/.buildozer/android/platform/build-arm64-v8a/build/python-installs/music_player/kivy/app.py", line 919, in _run_prepare
05-22 20:08:20.302 10976 11090 I python : File "/run/media/matrix/New_Volume/Developments/kivy-music-player/.buildozer/android/app/main.py", line 132, in build
05-22 20:08:20.302 10976 11090 I python : File "/run/media/matrix/New_Volume/Developments/kivy-music-player/.buildozer/android/platform/build-arm64-v8a/build/python-installs/music_player/kivy/uix/relativelayout.py", line 274, in __init__
05-22 20:08:20.303 10976 11090 I python : File "/run/media/matrix/New_Volume/Developments/kivy-music-player/.buildozer/android/platform/build-arm64-v8a/build/python-installs/music_player/kivy/uix/floatlayout.py", line 65, in __init__
05-22 20:08:20.303 10976 11090 I python : File "/run/media/matrix/New_Volume/Developments/kivy-music-player/.buildozer/android/platform/build-arm64-v8a/build/python-installs/music_player/kivy/uix/layout.py", line 76, in __init__
05-22 20:08:20.303 10976 11090 I python : File "/run/media/matrix/New_Volume/Developments/kivy-music-player/.buildozer/android/platform/build-arm64-v8a/build/python-installs/music_player/kivy/uix/widget.py", line 359, in __init__
05-22 20:08:20.304 10976 11090 I python : File "/run/media/matrix/New_Volume/Developments/kivy-music-player/.buildozer/android/platform/build-arm64-v8a/build/python-installs/music_player/kivy/uix/widget.py", line 463, in apply_class_lang_rules
05-22 20:08:20.304 10976 11090 I python : File "/run/media/matrix/New_Volume/Developments/kivy-music-player/.buildozer/android/platform/build-arm64-v8a/build/python-installs/music_player/kivy/lang/builder.py", line 539, in apply
05-22 20:08:20.304 10976 11090 I python : File "/run/media/matrix/New_Volume/Developments/kivy-music-player/.buildozer/android/platform/build-arm64-v8a/build/python-installs/music_player/kivy/lang/builder.py", line 661, in _apply_rule
05-22 20:08:20.304 10976 11090 I python : File "/run/media/matrix/New_Volume/Developments/kivy-music-player/.buildozer/android/platform/build-arm64-v8a/build/python-installs/music_player/kivy/lang/builder.py", line 661, in _apply_rule
05-22 20:08:20.305 10976 11090 I python : File "/run/media/matrix/New_Volume/Developments/kivy-music-player/.buildozer/android/platform/build-arm64-v8a/build/python-installs/music_player/kivy/lang/builder.py", line 657, in _apply_rule
05-22 20:08:20.305 10976 11090 I python : File "/run/media/matrix/New_Volume/Developments/kivy-music-player/.buildozer/android/app/screens/main_screen/home.py", line 36, in __init__
05-22 20:08:20.305 10976 11090 I python : File "/run/media/matrix/New_Volume/Developments/kivy-music-player/.buildozer/android/platform/build-arm64-v8a/build/python-installs/music_player/android/permissions.py", line 570, in request_permissions
05-22 20:08:20.305 10976 11090 I python : File "/run/media/matrix/New_Volume/Developments/kivy-music-player/.buildozer/android/platform/build-arm64-v8a/build/python-installs/music_player/android/permissions.py", line 513, in request_permissions
05-22 20:08:20.306 10976 11090 I python : File "jnius/jnius_export_class.pxi", line 1134, in jnius.jnius.JavaMultipleMethod.__call__
05-22 20:08:20.306 10976 11090 I python : jnius.jnius.JavaException: No methods matching your arguments, requested: (['android.permission.READ_EXTERNAL_STORAGE', 'android.permission.WRITE_EXTERNAL_STORAGE'],), available: []
بينما كان هذا يعمل في 1.2.1.
مرحباً يا رفاق لدي نفس المشكلة ، كيف أحلها؟ هل من الممكن استخدام Pyjnius أقدم في بناء buildozer؟ شكرا!
مرحباً يا رفاق لدي نفس المشكلة ، كيف أحلها؟ هل من الممكن استخدام Pyjnius أقدم في بناء buildozer؟ شكرا!
يجب أن يعمل تثبيت الإصدار باستخدام requirements = pyjnius==1.2.1,...
.
أنا لست شخصًا تابعًا لـ Kivy ، ولكن هل يمكن لأي شخص لصق رابط إلى شفرة المصدر ذات الصلة؟
مرحباً يا رفاق لدي نفس المشكلة ، كيف أحلها؟ هل من الممكن استخدام Pyjnius أقدم في بناء buildozer؟ شكرا!
يجب أن يعمل تثبيت الإصدار باستخدام
requirements = pyjnius==1.2.1,...
.
شكرا ، إنفاكت عملت!
على الرغم من أن ربط إصدار Pyjnius بـ 1.2.1 قد يعمل من أجل ذلك ، فإن الإصدار 1.2.1 له قيود أخرى ، لذلك يجب معالجة ذلك بشكل مثالي من الآن فصاعدًا ...
سيكون هناك https://github.com/kivy/python-for-android/blob/develop/pythonforandroid/recipes/android/src/android/permissions.py#L513 آسف لم آخذ الوقت الكافي للتحقيق في هذا على الاطلاق.
أصبح الأمر صعبًا لأننا لا نستطيع بسهولة رؤية اسم فئة النشاط
أتوقع أن يكون https://github.com/kivy/python-for-android/blob/develop/pythonforandroid/bootstraps/sdl2/build/src/main/java/org/kivy/android/PythonActivity.java# L42 ولكنها يمكن أن تكون الفئة المكافئة في تمهيد آخر (https://github.com/kivy/python-for-android/tree/develop/pythonforandroid/bootstraps)
يبدو أن python_activity.requestPermissions
طريقة غير ثابتة. لكن يتم استدعاؤها كما لو كانت ثابتة. والتي لسبب ما تستخدم للعمل مع الإصدارات القديمة من Pyjnius. يبدو أن استخدام python_activity.mActivity.requestPermissions
يعمل مع 1.3.0.
لذلك يبدو أنه خطأ في مكتبة p4a android
بدلاً من ذلك.
بقعة جيدة. في الواقع؛ كما هو الحال في Java ، لن يسمح المترجم باستدعاء طريقة غير ثابتة على كائن ثابت. obfusk هل يمكنك تحديث https://github.com/kivy/python-for-android/issues/2304؟
أعتقد أن خطأ Pyjnius يمكن أن يكون أكثر وضوحًا أيضًا - أي لم يتم العثور على اسم الطريقة وفي أي كائن!
أنا مندهش إلى حد ما من أن هذا كان يعمل. ~ ما هو المثال الذي تم استدعاؤه؟ مؤشر فارغ؟ أو بعض الأمثلة الفعلية للفئة؟ ~
أعتقد أن خطأ Pyjnius يمكن أن يكون أكثر وضوحًا أيضًا - أي لم يتم العثور على اسم الطريقة وفي أي كائن!
: +1:
أعتقد أن خطأ Pyjnius يمكن أن يكون أكثر وضوحًا أيضًا - أي لم يتم العثور على اسم الطريقة وفي أي كائن!
👍
تم إرسال العلاقات العامة - راجع # 558.
إذن الملخص لأي شخص يقرأ هذا في المستقبل:
تم دمج التصحيح
ليس بعد؛ لكن تمت الموافقة عليه :)
أعتقد أن هؤلاء FIXME
s مرتبطون بالفعل. نظرًا لأن __get__
يعيّن j_self
بدلاً من إرجاع طريقة ملزمة وإرجاع self
عند استدعاء فئة بدلاً من مثيل ، فإن استدعاء طريقة غير ثابتة في فئة ما استخدام آخر مثيل تم استدعاؤه (إن وجد). بالطبع ، لا ينبغي أبدًا السماح باستدعاء طريقة غير ثابتة في الفصل (ولم يعد كذلك).
أعتقد أن هؤلاء
FIXME
s مرتبطون بالفعل. نظرًا لأن__get__
يعيّنj_self
بدلاً من إرجاع طريقة ملزمة وإرجاعself
عند استدعاء فئة بدلاً من مثيل ، فإن استدعاء طريقة غير ثابتة في فئة ما استخدام آخر مثيل تم استدعاؤه (إن وجد). بالطبع ، لا ينبغي أبدًا السماح باستدعاء طريقة غير ثابتة في الفصل (ولم يعد كذلك).
هل يمكنك إظهار حالة اختبار أبسط ، ثم نقوم بعمل إصدار جديد؟
هل يمكنك إظهار حالة اختبار أبسط ، ثم نقوم بعمل إصدار جديد؟
مع 1.2.1:
>>> from jnius import autoclass
>>> s = autoclass("java.lang.String")
>>> s.toString()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "jnius/jnius_export_class.pxi", line 755, in jnius.JavaMethod.__call__
File "jnius/jnius_export_class.pxi", line 699, in jnius.JavaMethod.ensure_method
jnius.JavaException: Unable to find a None method!
classname: None, definition: ()Ljava/lang/String;
>>> s("foo").toString()
'foo'
>>> s.toString()
'foo'
مع 1.3.0:
>>> from jnius import autoclass
>>> s = autoclass("java.lang.String")
>>> s("foo").toString()
'foo'
>>> s.toString()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "jnius/jnius_export_class.pxi", line 1134, in jnius.JavaMultipleMethod.__call__
jnius.JavaException: No methods matching your arguments, requested: (), available: []
نظرًا لأن استدعاء طريقة غير ثابتة في الفصل لم يعد يعمل ، فقد تم إصلاح المشكلة بالفعل.
والآن نحن نفهم سبب المشكلة.
لذلك لا أعتقد أننا بحاجة إلى إصدار جديد.
أو: نظرًا لأن لا أحد يبدو على دراية بكيفية إصلاح ذلك في 1.3.0 ، فإننا نضيف حالة اختبار لمنع الانحدار المستقبلي إلى السلوك السابق. يمكن أن يتوقع testcase الاستثناء في الحالة أعلاه.
وهل يمكننا إزالة FIXME إذن؟
أو: نظرًا لأن لا أحد يبدو على دراية بكيفية إصلاح ذلك في 1.3.0 ، فإننا نضيف حالة اختبار لمنع الانحدار المستقبلي إلى السلوك السابق. يمكن أن يتوقع testcase الاستثناء في الحالة أعلاه.
لقد اكتشفت ذلك بالفعل الآن. وتم إصلاح المشكلة جزئياً فقط: العرق_ الإبتسامة:. انظر # 567
وهل يمكننا إزالة FIXME إذن؟
ليس بعد على ما أعتقد. انظر # 563.
مجرد ملاحظة ، لقد غيرت فرع p4a الخاص بي إلى "تطوير" وما زلت أعاني من هذه المشكلة. لقد قمت بمسح مجلد .buildozer الخاص بي وأعدت بنائه ، ولن يتم إنشاء فرع "التطوير" جديدًا بالنسبة لي بدون ربط الأخطاء (2020-12-13 ، 16:22 -0500) (تحرير: عذرًا ، كانت هذه مشكلة مختلفة. لا يمكن تشغيل buildozer بنجاح على نظامي ، على الإطلاق ، في الوقت الحالي.)
أعتقد أن الطريقة التي يجب اتباعها للتغلب على هذا الأمر في تطبيقات العميل هي إجراء استدعاء pyjnius يدويًا ، لذا سيعمل قاعدة بيانات العميل بشكل جيد على الإصدارات المختلفة. من الواضح أن هناك حاجة ماسة للإصدارات التي تصلح هذا الأمر هنا.