2013-08-01 4 views
0

Я пишу приложение, которое потребует около 520 маленьких png. Я сохранил их в своей папке с ресурсами, и я обращаюсь к ним с помощью getAssets().Сбой приложений для Android из-за большого количества изображений

Однако мое приложение падает при запуске и работает нормально, если я уменьшаю количество изображений в папке. Возможно ли хранить дополнительные изображения в другом месте или увеличить размер изображений, которые может обрабатывать мое приложение?

Моя ошибка LogCat является «Ошибка при добавлении к JNI локальной таблице реф (имеет 512 записей)»

каждое изображение о 4kb большой, общий размер папки составляет 2,1 Mb

Соответствующий код:

 AssetManager assets = getAssets(); 
    fileNameList = new ArrayList<String>(); 
    fileNameList.clear(); 

    String[] paths; 
    try { 
     paths = assets.list("final"); 

     for (String path : paths) 
      fileNameList.add(path.replace(".jpg", "")); 

    } catch (IOException e) { 
     Log.e(TAG, "Error loading image file names", e); 
    } // end catch 
+1

post logcat error –

+0

Насколько малы - то есть размер файла - это pngs? Также это сбой из-за ошибки OutOfMemory? и как они отображаются (например, listview, imageview, gridview)? Вероятно, вам необходимо уменьшить размер файла, используя изображения с более низким разрешением, чтобы сделать это. – Rarw

+0

@ goran-horia-mihail: Обновлено мое сообщение – user1801060

ответ

0

Я думаю, что ваш ответ in this post. Вы не можете расширить ссылочную таблицу до 512 элементов, поэтому вам нужно удалить локальные ссылки на класс и/или объекты, чтобы освободить место.

+0

Я сократил число. от изображений до 460. Без изменений, а также, я не могу понять, почему я получаю ошибку JNI, но я не использовал JNI в своем коде – user1801060

+0

Ну тогда это не имеет смысла. – Rarw

Смежные вопросы