Я пытаюсь добавить очень простую функцию в свое собственное приложение: сохранить отображаемое изображение в файл и заметить, что галерея обновляется.
Я нашел этот проект github, https://github.com/zhouxu88/SaveImgToGallery, но он со старыми конфигурациями gradle, поэтому я обновил соответствующие конфигурации, после чего сгенерированное приложение Android Studio запустилось нормально на моем телефоне.
Однако, когда я выключаю AS, удаляю папку .idea (поскольку AS выдает предупреждение Unsupported Modules Detected: Compilation is not supported for following modules
), перезапускаю AS, повторно сгенерированное приложение не может получить права на сохранение изображения.
Android Studio версии 193, Gradle версии 6.1.1.
Почему повторное создание папки .idea приводит к тому, что приложению не удается получить привилегию?
Поскольку SaveImgToGallery (очень старая) основана на очень старой библиотеке: easypermissions (GitHub) 0.3.0, я думаю, что она очень глючная, но есть более новые версии (3 и 2). Попробуйте не связывать библиотеку, а импортировать, потому что это очень маленькие модули.
После нескольких часов борьбы и отладки я заметил, что основной причиной было две: 1) я не удалил свое предыдущее приложение, это влияет на поведение разрешения; 2) Не знал и не замечал targetSdkVersion, 29 важнее, чем раньше. Конечно, я должен использовать новую версию easypermission, ее старая версия может не поддерживать API 29.