Sqlite не возвращает такой таблицы, но таблица присутствует при извлечении на устройстве OnePlusTwo

Я скопировал файл db из активов в базу данных приложения, и он успешно скопирован. Когда я запрашиваю любую таблицу, она не возвращает такого исключения таблицы. Я получил файл базы данных с этого телефона, и в нем есть все необходимые таблицы. Я знаю, что это немного странно, но эта ошибка возникает только на устройстве OnePlusTwo. Итак, мой вопрос заключается в том, что это проблема конкретного устройства или общая проблема, с которой сталкивается кто-либо еще. Пожалуйста, укажите, если кто-то сталкивается с этой проблемой на любом другом телефоне или знает, как решить эту проблему. Я не публиковал никакого кода, потому что он подходит только для одного устройства, но если кому-то нужно, пожалуйста, укажите, что я опубликую эту часть.


person varun bhardwaj    schedule 07.10.2015    source источник
comment
Я столкнулся с той же проблемой.   -  person Vipul Asri    schedule 07.10.2015
comment
Хотя я не знаю ответа на ваш вопрос, я просто хочу добавить к этому: есть несколько других странных проблем, которые случаются только с OnePlus, например, невозможность контролировать то, что делает кнопка «Ввод» на клавиатуре в текст редактирования.   -  person nbokmans    schedule 07.10.2015
comment
Это то, что я хочу подтвердить, это какая-то конкретная проблема с устройством или я должен сделать что-то особенное для этой проблемы. В любом случае спасибо :)   -  person varun bhardwaj    schedule 07.10.2015


Ответы (1)


Я решил эту проблему, вставив одну строку кода перед копированием базы данных. Проблема в том, что когда вы создали базу данных, вам нужно сначала закрыть ее, прежде чем открывать в ней какой-либо поток. Этой проблемы не было со многими устройствами, так как теперь все устройства справляются с такими ситуациями, но некоторые устройства, такие как OnePlusTwo, выдают ошибку. Ниже приведена строка, которую необходимо добавить непосредственно перед копированием базы данных:

getReadableDatabase().close();

Это сначала закроет соединение, а затем откроет выходной поток в созданной базе данных. Если кому-то нужен дополнительный код, я могу опубликовать пример кода. Если это не решит проблему, опубликуйте код копии базы данных.

Спасибо :)

person varun bhardwaj    schedule 09.10.2015
comment
не могли бы вы уточнить немного больше кода, так как я также получаю ту же ошибку, пожалуйста - person ; 20.10.2015
comment
Протестировали это исправление и на других устройствах; и в результате он работает как обычно на всех других устройствах, и теперь он даже не беспокоит OnePlus. - person Darpan; 26.10.2015
comment
@RahulSharma вам просто нужно закрыть доступ к базе данных, который вы получили, прежде чем копировать базу данных ресурсов в базу данных вашего приложения. Процесс заключается в том, что сначала создается база данных при первом запуске приложения, и сразу после этого вы копируете базу данных. Вам просто нужно получить доступ для чтения к вашей базе данных перед началом процесса копирования и закрыть этот экземпляр базы данных. - person varun bhardwaj; 28.10.2015