我正在用Kivy开发一个使用Google Sheets电子表格作为数据库的应用程序。我使用gspread和google.auth.service_account来实现这一点。当我在桌面上运行我的应用程序时,它工作正常。当我将它编译到安卓系统并尝试在手机上运行时,它崩溃了(该应用程序确实可以在手机上运行)。
这些是我的buildozer.spec文件中的要求。
requirements = python3,kivy==1.11.1,openssl,KivyMD,google-auth-oauthlib,google-auth-httplib2,pyasn1,pyasn1-modules,rsa,requests,gspread
还有logcat:
05-01 18:28:03.346 2542 2568 I python : [INFO ] [Logger ] Record log in /data/user/0/org.helman.wtfmercado/files/app/.kivy/logs/kivy_20-05-01_1.txt
05-01 18:28:03.347 2542 2568 I python : [INFO ] [Kivy ] v1.11.1
05-01 18:28:03.347 2542 2568 I python : [INFO ] [Kivy ] Installed at "/data/user/0/org.helman.wtfmercado/files/app/_python_bundle/site-packages/kivy/__init__.pyc"
05-01 18:28:03.347 2542 2568 I python : [INFO ] [Python ] v3.8.1 (default, Apr 29 2020, 16:44:54)
05-01 18:28:03.347 2542 2568 I python : [Clang 8.0.2 (https://android.googlesource.com/toolchain/clang 40173bab62ec7462
05-01 18:28:03.347 2542 2568 I python : [INFO ] [Python ] Interpreter at ""
05-01 18:28:03.347 2542 2568 I python : [INFO ] [KivyMD ] v0.104.1
05-01 18:28:03.349 2542 2568 I python : [INFO ] [Factory ] 184 symbols loaded
05-01 18:28:04.022 2542 2568 I python : [INFO ] [Image ] Providers: img_tex, img_dds, img_sdl2, img_gif (img_pil, img_ffpyplayer ignored)
05-01 18:28:04.066 2542 2568 I python : [INFO ] [Window ] Provider: sdl2
05-01 18:28:04.083 2542 2568 I python : [INFO ] [GL ] Using the "OpenGL ES 2" graphics system
05-01 18:28:04.084 2542 2568 I python : [INFO ] [GL ] Backend used <sdl2>
05-01 18:28:04.085 2542 2568 I python : [INFO ] [GL ] OpenGL version <b'OpenGL ES 3.2 [email protected] (GIT@4c638fb, I557c585805) (Date:10/06/18)'>
05-01 18:28:04.085 2542 2568 I python : [INFO ] [GL ] OpenGL vendor <b'Qualcomm'>
05-01 18:28:04.085 2542 2568 I python : [INFO ] [GL ] OpenGL renderer <b'Adreno (TM) 540'>
05-01 18:28:04.085 2542 2568 I python : [INFO ] [GL ] OpenGL parsed version: 3, 2
05-01 18:28:04.085 2542 2568 I python : [INFO ] [GL ] Texture max size <16384>
05-01 18:28:04.085 2542 2568 I python : [INFO ] [GL ] Texture max units <16>
05-01 18:28:04.106 2542 2568 I python : [INFO ] [Window ] auto add sdl2 input provider
05-01 18:28:04.107 2542 2568 I python : [INFO ] [Window ] virtual keyboard not allowed, single mode, not docked
05-01 18:28:04.115 2542 2568 I python : [INFO ] [Text ] Provider: sdl2
05-01 18:28:04.173 2542 2568 I python : [INFO ] [GL ] NPOT texture support is available
05-01 18:28:04.378 2542 2568 I python : Traceback (most recent call last):
05-01 18:28:04.378 2542 2568 I python : File "/home/sam/Desktop/WTF_Mercado/.buildozer/android/app/main.py", line 15, in <module>
05-01 18:28:04.378 2542 2568 I python : File "/home/sam/Desktop/WTF_Mercado/.buildozer/android/platform/build-arm64-v8a/build/python-installs/wtfmercado/gspread/__init__.py", line 16, in <module>
05-01 18:28:04.379 2542 2568 I python : File "/home/sam/Desktop/WTF_Mercado/.buildozer/android/platform/build-arm64-v8a/build/python-installs/wtfmercado/gspread/auth.py", line 12, in <module>
05-01 18:28:04.379 2542 2568 I python : ModuleNotFoundError: No module named 'google.oauth2'
05-01 18:28:04.379 2542 2568 I python : Python for android ended.
如果有任何关于如何解决这个问题的建议,我将非常感激。
有同样的问题。
当我在桌面上运行我的应用程序时,它工作得很好。当我把它编译到安卓系统并尝试在手机上运行时,它就崩溃了(该应用程序确实可以运行到手机上)。
这一行解决了 [警告] stderr: ModuleNotFoundError。没有名为 "谷歌 "的模块 错误。
错误: buildozer.spec
requirements = python3,kivy,gspread,oauth2client,httplib2,pyopenssl,google-auth-oauthlib,pyasn1,pyasn1-modules,rsa,requests,google-auth-httplib2,openssl,google-api-python-client,google-auth,credentials,oauth2,google,cachetools,urllib3,chardet,idna,requests_oauthlib,oauthlib
确保你已经通过apt-get install或pip3 install在你的机器上安装了所有需要的lib。
也请确保在 buildozer.spec 文件,像。
android.permissions = INTERNET