Почему мои файлы активов не обновляются? - PullRequest
10 голосов
/ 23 апреля 2011

Моя программа открывает файл .txt из папки активов и читает из него.Вот код:

           AssetManager myAssetManager = myContext.getAssets();
           try{
                   InputStream is = myAssetManager.open("databaseeleven.txt");
                   byte[] bytes = new byte[is.available()];
                   is.read(bytes);
                   commands = new String(bytes);

           } catch(IOException e){
                   Toast.makeText(myContext, e.getMessage(), Toast.LENGTH_SHORT).show();
                   e.printStackTrace();
           }//try-catch

Я заметил, что когда я делаю изменения в файле databaseeleven.txt и сохраняю файл, мои изменения не отражаются на эмуляторе при повторном запуске моей программы.Проект сохранен на флешку.Я проверил это, чтобы убедиться, что есть только один файл с таким именем, и он актуален.Я знаю, что приложение повторно загружается из-за изменений в коде.Я использую egit, Eclipse версии 3.6.2 и ADT версии 10.0.1.Кто-нибудь знает, почему моя программа не работает с этим сохраненным файлом?

Обновление: обновление и последующая очистка проекта не помогают.

Ответы [ 6 ]

8 голосов
/ 04 мая 2011

Если я правильно понял вашу проблему, вы пытаетесь изменить файл в папке /assets.изменение содержимого .apk после подписания пакет невозможен.

Если файл небольшого размера, скопируйте его в app's private data directory.

Если файл больше, скопируйте его в /sdcard.

3 голосов
/ 12 января 2014

Это происходило со мной с файлом .sqlite в папке assets , и я решил это с помощью

  1. , удалив приложение из телефона
  2. ивосстановление.
2 голосов
/ 04 мая 2011

Каков размер файла databaseeleven.txt?

Существует ограничение в 1 МБ на файл для файла ресурсов, если размер файла превышает этот предел, он не будет доступен в вашем apk.

Если это ваш случай, есть две альтернативы, о которых я знаю:

  • Разделите ваш файл на куски по 1 МБ, у вас есть пример этого в этом ТАК вопрос
  • Используйте расширение файла, которое не сжимается в Android, как предлагается здесь .Обратите внимание, что ваш файл не будет сжат, и вы, вероятно, получите большой apk.

ПРИМЕЧАНИЕ. Похоже, что ограничение в 1 МБ было удалено в Android 2.3, поэтому это относится только к 2.2 иниже.

0 голосов
/ 05 мая 2011

Если это текстовый файл вашего формата, вы должны делать что-то вроде этого

InputStream ins =  getResources().openRawResource(R.raw.options);

где "options" - это файл options.txt в папке ~ / res / raw.

Любые изменения в этом файле по-прежнему требуют публикации / развертывания обратно на устройство / эмулятор, поэтому он имеет самый последний apk.

Надеюсь, это поможет ...

0 голосов
/ 23 апреля 2011

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

0 голосов
/ 23 апреля 2011

Очистите проект после редактирования файла .... надеюсь, это поможет

...