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, у меня это работает