Android-разрешение на создание базы данных - PullRequest
12 голосов
/ 29 мая 2011

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

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

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

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

Ответы [ 6 ]

15 голосов
/ 29 мая 2011

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

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

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

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

3 голосов
/ 13 июня 2011

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

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

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

2 голосов
/ 11 июля 2016

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

НЕ ЗАБЫВАЙТЕ РАСШИРЕНИЕ .db

1 голос
/ 22 июля 2017

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

1 голос
/ 16 мая 2012

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

0 голосов
/ 29 апреля 2019

Я удалил данные приложения из приложений из настроек, затем удалил и запустил приложение с переименованием файла db с расширением .db, у меня это работает

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...