Android разрешение на создание базы данных

Привет у меня есть некоторые проблемы при создании базы данных sqlite в android.

все нормально на эмуляторе, я могу создать базу данных. Но на самом деле это не работает. Когда я попытался отладить приложение на своем телефоне, ему просто не удалось создать базу данных.

Так может кто-нибудь сказать мне, что случилось? Есть ли специальное разрешение, которое мне нужно добавить в файл манифеста? Я пробовал ACCESS_CHECKIN_PROPERTIES или WRITE_EXTERNAL_STORAGE, но все еще не могу получить базу данных.

кстати, пользовательская база данных может храниться только на sd-карте, но в корневом каталоге?

большое спасибо!!

5 ответов


без какой-либо обратной связи в ошибке невозможно сказать вам, что не так в вашем коде. Тем не менее, я могу сказать вам, что вы делаете не нужно ACCESS_CHECKIN_PROPERTIES для использования собственной базы данных. Вам не нужно WRITE_EXTERNAL_STORAGE либо, если вы не пытаетесь получить доступ к sdcard.

базы данных хранятся по умолчанию в подпапке папки вашего приложения во внутреннем хранилище, т. е.:

/data/data/YOUR_APP/databases/YOUR_DATABASAE.db

Если вы делаете это на физическом устройстве он должен быть укоренен хотя.


У меня была точно такая же проблема. Мое приложение будет создать БД на эмуляторе, читать и записывать данные, но он разбился, когда на устройстве.

Я нашел очень простое решение: удалите базу данных на вашем устройстве вручную в /data/data/YOUR_APP/databases / YOUR_DATABASAE.db, а затем повторно запустите приложение.

работал в моем случае, надеюсь, это поможет.


это очень легко решить, вы, должно быть, не добавили .расширение db в имени базы данных, объявленном в файле db java Например, public static final String DB_NAME = "tasks.db";

НЕ ЗАБУДЬТЕ .расширение БД


возможно, у вас есть эта проблема, потому что у вас есть версия prevoius вашего приложения, установленного на вашем телефоне. Перед установкой новой версии удалить предыдущую с помощью "диспетчера приложений". Я решаю таким образом.


сначала я проверяю разрешения и время выполнения получить разрешение, но так как targetSdkVersion был 25, проблема не была решена, работа с БД без использования расширения .БД всегда была хорошей и работала, но ее внешний вид, что targetSdkVersion 25 нуждается в расширении .децибел и моя проблема решена.