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

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

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

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

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

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

Ответ 1

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

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

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

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

Ответ 2

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

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

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

Ответ 3

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

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

Ответ 4

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

Ответ 5

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

Ответ 6

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