Попытка создать файл через chaquopy в Android Studio - PullRequest
0 голосов
/ 08 марта 2020

Я пытаюсь создать файл jpg и поместить в него фотографии блобов, которые я беру из своей базы данных, чтобы я мог превратить их в фотографии jpg. Я знаю, что этот код у меня работает, так как я обычно проверял его в python. Хотя, когда я помещаю его в android studio, он говорит, что файл доступен только для чтения, и я изо всех сил пытаюсь понять, почему.

images = conn.cursor ()

images.execute("SELECT Picture FROM Pictures")

record = images.fetchall()
for row in record:
    photo = row[0]

    if os.path.exists("myfile.jpg"):
        print("The file exists")
        os.remove("myfile.jpg")
        with open("myfile.jpg", "wb") as fh:
            fh.write(photo)
            fh.close()
        image = face_recognition.load_image_file("myfile.jpg")
        known_face_encodings.append(face_recognition.face_encodings(image)[0])
    else:
        print("The file does not exist")
        with open("myfile.jpg", "wb") as fh:
            fh.write(photo)
            fh.close()
        image = face_recognition.load_image_file("myfile.jpg")
        known_face_encodings.append(face_recognition.face_encodings(image)[0])

images.close()

Моя ошибка:

D / AndroidRuntime: завершение работы виртуальной машины E / AndroidRuntime: FATAL EXCEPTION: main Процесс: com.example.wit, PID: 2651 java .lang.IllegalStateException: не удалось выполнить метод для android: onClick в androidx.appcompat.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick (AppCompatViewInflater. java: 402) в android .view.View.performClick (View. java: 7125) в android .view.View.performClickInternal (View. java: 7102) в android .view.View.access $ 3500 (View. java: 801) в android .view.View $ PerformClick.run (View . java: 27336) в android .os.Handler.handleCallback (Обработчик. java: 883) в android .os.Handler.dispatchMessage (Обработчик. java: 100) в android. os.Looper.l oop (Looper. java: 214) в android .app.ActivityThread.main (ActivityThread. java: 7356) в java .lang.reflect.Method.invoke (Native Метод) на ком. android .internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit. java: 492) в com. android .internal.os.ZygoteInit.main (ZygoteInit. java: 930) Причина: java Исключительная ситуация View.performClick (просмотр. java: 7125) в android .view.View.performClickInternal (просмотр. java: 7102) в android .view.View.access $ 3500 (просмотр. java: 801 ) в android .view.View $ PerformClick.run (просмотр. java: 27336) в android .os.Handler.handleCallback (обработчик. java: 883) в android .os.Handler. dispatchMessage (Handler. java: 100) в android .os.Looper.l oop (Looper. java: 214) в android .app.ActivityThread.main (ActivityThread. java: 7356 ) в java .lang.reflect.Method.invoke (собственный метод) в com. android .internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit. java: 492) в com. android .internal .os.ZygoteInit.main (ZygoteInit. java : 930) Причина: com.chaquo. python .PyException: OSError: [Errno 30] Файловая система только для чтения: 'myfile.jpg' в .facerecognition.main (facerecognition.py:76) в .chaquopy_ java .call (chaquopy_ java .pyx: 283) в .chaquopy_ java .Java_com_chaquo_python_PyObject_callAttrThrows (chaquopy_ java .pyx: 255) в com.chaquo. python .PyObject.callAttrThrings. ( chaquo. python .PyObject.callAttr (PyObject. java: 207) в com.example.wit.MainActivity.takepicture (MainActivity. java: 99) в java .lang.reflect.Method.invoke ( Собственный метод) в androidx.appcompat.app.AppCompatViewInflater $ DeclaredOnClickListener.onClick (AppCompatViewInflater. java: 397) в android .view.View.performClick (View. java: 7125) в android .view. View.performClickInternal (просмотр. java: 7102) по android .view.View.access $ 3500 (просмотр. java: 801) по android .view.View $ PerformClick.run (просмотр. java : 27336) в android .os.Handler.handleCallback (Обработчик. java: 883) в android .os.Handler.dispatchMessage (Обработчик. java: 100) в android .os.Looper. л * 10 87 * (Looper. java: 214) в android .app.ActivityThread.main (ActivityThread. java: 7356) в java .lang.reflect.Method.invoke (собственный метод) в com. android .internal.os.RuntimeInit $ MethodAndArgsCaller.run (RuntimeInit. java: 492) в com. android .internal.os.ZygoteInit.main (ZygoteInit. java: 930)

...