Приложение Android вылетает после генерации подписанного apk

Каждый, кто ответил на этот вопрос до сих пор, абсолютно прав - read() перемещается по файлу, поэтому после того, как вы его вызвали, вы не можете его снова называть.

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

f = f.open()
text = f.read() # read the file into a local variable
# get the year
match = re.search(r'Popularity in (\d+)', text)
if match:
  print match.group(1)
# get all the names
matches = re.findall(r'<td>(\d+)</td><td>(\w+)</td><td>(\w+)</td>', text)
if matches:
  # matches will now not always be None
0
задан Alfredo David Gómez Sanmartin 16 January 2019 в 17:04
поделиться

3 ответа

ОБНОВЛЕНИЕ: Когда я удаляю хранилище приложения, оно начинает работать. Я не понимаю ...

У вас была более ранняя версия файла базы данных, в которой не было этой таблицы. Очистка хранилища приложений удалила файл базы данных и заставила sqlite helper onCreate() снова запускаться.

См. Когда запускается SQLiteOpenHelper onCreate () / onUpgrade ()?

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

0
ответ дан laalto 16 January 2019 в 17:04
поделиться

измените свою базу данных на метод Create на этот:

db.execSQL("CREATE TABLE IF NOT EXISTS comentario(_id integer,
nome text not null,
correo text not null,
texto text not null,
idLoc integer not null, primary key (_id));");
0
ответ дан mostafa3dmax 16 January 2019 в 17:04
поделиться

он жалуется на no such table: comentario ... что означает, что таблица comentario не была создана ранее - и что трассировка стека является просто последующей ошибкой. посмотрите выходные данные сборки для предупреждений ProGuard (или даже добавьте их к вопросу); там может быть что-то запутанное, что не должно было быть запутано. код класса базы данных совершенно не имеет значения (просто потому, что он работает, но не запутывается); имеет значение только журнал сборки. добавление -verbose в конфигурацию ProGuard может помочь получить более подробную информацию.

0
ответ дан Martin Zeitler 16 January 2019 в 17:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: