为什么 Kivy 应用程序在使用 paramiko 模块时会崩溃?
Why does the Kivy app crash when using the paramiko module?
我有一个使用 paramiko 的应用程序,应用程序本身运行良好,但是当您启动它时它崩溃了,我知道它在 paramiko 模块中。我已将 white list 放在 main.py 文件旁边和 pythonforandroid/bootstraps/sdl2/build 文件夹中的黑名单文件旁边/
我的规范文件的一部分:
source.include_exts = py,png,jpg,kv,atlas
requirements = kivy,kivymd,boto3,botocore,openssl,pyjnius,ecdsa,bcrypt,cryptography,paramiko, android
osx.python_version = 3
osx.kivy_version = 1.10.1
android.permissions = INTERNET, ACCESS_NETWORK_STATE
android.whitelist_src = whitelist.txt
日志文件的一部分(我认为这会导致应用程序关闭)
06-04 16:31:49.640 21791 21824 I python : Traceback (most recent call last):
06-04 16:31:49.640 21791 21824 I python : File "/home/kivy/Desktop/touchtracer2/.buildozer/android/app/main.py", line 5, in <module>
06-04 16:31:49.641 21791 21824 I python : File "/home/kivy/Desktop/touchtracer2/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/paramiko/__init__.py", line 22, in <module>
06-04 16:31:49.641 21791 21824 I python : File "/home/kivy/Desktop/touchtracer2/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/paramiko/transport.py", line 89, in <module>
06-04 16:31:49.642 21791 21824 I python : File "/home/kivy/Desktop/touchtracer2/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/paramiko/dsskey.py", line 37, in <module>
06-04 16:31:49.643 21791 21824 I python : File "/home/kivy/Desktop/touchtracer2/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/paramiko/pkey.py", line 31, in <module>
06-04 16:31:49.644 21791 21824 I python : File "/home/kivy/Desktop/touchtracer2/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/bcrypt/__init__.py", line 25, in <module>
06-04 16:31:49.644 21791 21824 I python : ImportError: dlopen failed: "/data/data/org.test.myapp/files/app/_python_bundle/site-packages/bcrypt/_bcrypt.so" is 64-bit instead of 32-bit
06-04 16:31:49.644 21791 21824 I python : Python for android ended.
我的app,专供测试
from kivy.lang import Builder
from kivymd.app import MDApp
import boto3
import io
import paramiko
KV = '''
Screen:
Button:
id: button
text: "Start"
font_size: "18sp"
on_release: app.start()
'''
class MainApp(MDApp):
def build(self):
self.theme_cls.primary_palette = "Green"
return Builder.load_string(KV)
def start(self):
print('1')
MainApp().run()
我将 buildozer 更新到 1.2.0 版本,注释掉这些行 p4a.source_dir = /home/kivy/Repos/python-for-android/
android.ndk_path
android.sdk_path
,安装 python 3.8,在终端中完成此命令 buildozer android clean
并修剪了这一行 requirements = kivy,kivymd,boto3,botocore,openssl,pyjnius,ecdsa,bcrypt,cryptography,paramiko,dateutil,urllib3,jmespath,PyNaCl, android
我有一个使用 paramiko 的应用程序,应用程序本身运行良好,但是当您启动它时它崩溃了,我知道它在 paramiko 模块中。我已将 white list 放在 main.py 文件旁边和 pythonforandroid/bootstraps/sdl2/build 文件夹中的黑名单文件旁边/
我的规范文件的一部分:
source.include_exts = py,png,jpg,kv,atlas
requirements = kivy,kivymd,boto3,botocore,openssl,pyjnius,ecdsa,bcrypt,cryptography,paramiko, android
osx.python_version = 3
osx.kivy_version = 1.10.1
android.permissions = INTERNET, ACCESS_NETWORK_STATE
android.whitelist_src = whitelist.txt
日志文件的一部分(我认为这会导致应用程序关闭)
06-04 16:31:49.640 21791 21824 I python : Traceback (most recent call last):
06-04 16:31:49.640 21791 21824 I python : File "/home/kivy/Desktop/touchtracer2/.buildozer/android/app/main.py", line 5, in <module>
06-04 16:31:49.641 21791 21824 I python : File "/home/kivy/Desktop/touchtracer2/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/paramiko/__init__.py", line 22, in <module>
06-04 16:31:49.641 21791 21824 I python : File "/home/kivy/Desktop/touchtracer2/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/paramiko/transport.py", line 89, in <module>
06-04 16:31:49.642 21791 21824 I python : File "/home/kivy/Desktop/touchtracer2/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/paramiko/dsskey.py", line 37, in <module>
06-04 16:31:49.643 21791 21824 I python : File "/home/kivy/Desktop/touchtracer2/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/paramiko/pkey.py", line 31, in <module>
06-04 16:31:49.644 21791 21824 I python : File "/home/kivy/Desktop/touchtracer2/.buildozer/android/platform/build-armeabi-v7a/build/python-installs/myapp/bcrypt/__init__.py", line 25, in <module>
06-04 16:31:49.644 21791 21824 I python : ImportError: dlopen failed: "/data/data/org.test.myapp/files/app/_python_bundle/site-packages/bcrypt/_bcrypt.so" is 64-bit instead of 32-bit
06-04 16:31:49.644 21791 21824 I python : Python for android ended.
我的app,专供测试
from kivy.lang import Builder
from kivymd.app import MDApp
import boto3
import io
import paramiko
KV = '''
Screen:
Button:
id: button
text: "Start"
font_size: "18sp"
on_release: app.start()
'''
class MainApp(MDApp):
def build(self):
self.theme_cls.primary_palette = "Green"
return Builder.load_string(KV)
def start(self):
print('1')
MainApp().run()
我将 buildozer 更新到 1.2.0 版本,注释掉这些行 p4a.source_dir = /home/kivy/Repos/python-for-android/
android.ndk_path
android.sdk_path
,安装 python 3.8,在终端中完成此命令 buildozer android clean
并修剪了这一行 requirements = kivy,kivymd,boto3,botocore,openssl,pyjnius,ecdsa,bcrypt,cryptography,paramiko,dateutil,urllib3,jmespath,PyNaCl, android