我正在开发一个kivymd应用程序,但该应用程序在获得权限后崩溃



我正在kivymd中开发一个android应用程序。但当我测试它时,它在某些设备中崩溃,在其他设备中运行良好。这是我的读/写权限代码

        if platform == 'android':
            from android.permissions import Permission , request_permissions
            def callback(permissions,results):
                if all([res for res in results]):
                    print("Got all Permissions")
                else:
                    print("did not get all permissions!")
            request_permissions([Permission.WRITE_EXTERNAL_STORAGE,Permission.READ_EXTERNAL_STORAGE] , callback)

错误

2021-04-29 20:22:51.731 6604-6604/? W/SDLThread: type=1400 audit(0.0:23390110): avc: granted { execute } for path="/data/data/org.kpkundali.kpkundali.astrologyapp/files/app/_python_bundle/modules/mmap.cpython-37m.so" dev="dm-1" ino=140498 scontext=u:r:untrusted_app:s0:c204,c257,c512,c768 tcontext=u:object_r:app_data_file:s0:c204,c257,c512,c768 tclass=file
2021-04-29 20:22:51.951 6604-6636/? I/python:  Traceback (most recent call last):
2021-04-29 20:22:51.951 6604-6636/? I/python:    File "/home/manish/kpkundali/.buildozer/android/app/main.py", line 1593, in <module>
2021-04-29 20:22:51.952 6604-6636/? I/python:    File "/home/manish/kpkundali/.buildozer/android/platform/build-arm64-v8a/build/python-installs/kpkundali.astrologyapp/kivy/app.py", line 829, in run
2021-04-29 20:22:51.952 6604-6636/? I/python:    File "/home/manish/kpkundali/.buildozer/android/app/main.py", line 1571, in build
2021-04-29 20:22:51.953 6604-6636/? I/python:    File "/home/manish/kpkundali/.buildozer/android/app/main.py", line 895, in __init__
2021-04-29 20:22:51.953 6604-6636/? I/python:  PermissionError: [Errno 13] Permission denied: '/storage/emulated/0/kundali'
2021-04-29 20:22:51.953 6604-6636/? I/python: Python for android ended.

我终于想通了!这是由于2019年的安卓版本更新。它适用于低于Android 10的设备,但不适用于Android 10或更高版本,因为它们直接限制外部文件存储访问。看看这个答案。这个问题的解决方案是,我们可以使用内部应用程序存储来创建文件夹和文件,但当我们卸载应用程序时,我们将丢失存储的所有文件。

最新更新