Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.10.2014, 08:37   #1
ZBEP
Форумчанин
 
Аватар для ZBEP
 
Регистрация: 23.03.2009
Сообщений: 334
По умолчанию XE7 Android дублирование ресурсов

Подскажите, кто в курсе.
На XE6 компилировалось как надо, а вот в XE7 - что-то странное.

Есть проект под андроид, с картинками, музыкой и т.д.
В общей сложности ресурсов на 9 МБ.
В XE6, если ничего не путаю, файл ресурсов хранился в:
Цитата:
Project.apk\lib\armeabi-v7a\libProject.so
После компиляции проекта в XE7, все файлы ресурсов дублируются в:
Цитата:
Project.apk\assets\internal
Причем в виде отдельных файлов, а не все в куче, как libProject.so, который так же, никуда не делся и в размере не уменьшился.

В итоге размер проекта увеличился на 9 МБ.
Кто знает как сделать так, что бы файлы ресурсов хранились либо в armeabi-v7a, либо в internal, а не дублировались?
ZBEP вне форума Ответить с цитированием
Старый 15.11.2014, 04:59   #2
ZBEP
Форумчанин
 
Аватар для ZBEP
 
Регистрация: 23.03.2009
Сообщений: 334
По умолчанию

"Решение":
Удалить все элементы из "Resource and images" и добавить все нужное в "Deployment" и указать в поле "Remote Path" путь: ".\assets\internal\"

Загрузка файла:
Код:
StringList.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath,'Test.txt'));

Последний раз редактировалось ZBEP; 15.11.2014 в 05:02.
ZBEP вне форума Ответить с цитированием
Старый 15.11.2014, 09:31   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Хорошо что ответы выкладываешь. За это спасибо.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.11.2014, 04:18   #4
ZBEP
Форумчанин
 
Аватар для ZBEP
 
Регистрация: 23.03.2009
Сообщений: 334
По умолчанию

Эх, наткнулся на еще одну неприятную особенность.

Пример.
Есть приложение, содержащие файл ( загруженный через Deployment ).
Если установить приложение, после чего изменить содержимое файла (т.е. имя файла останется прежним, а содержимое изменится), то при запуске проекта старый файл не обновится на новый.

Приходится либо:
1. Через настройки "Стирать данные" этого приложения, что бы при запуске - файл распаковывался из apk.
2. Программно удалить файл.

Программное удаление конечно отрабатывает как надо, но в этом случае приходится проверять версию приложения и если она не совпадает с запущенной, то очищать все подобные файлы из ".\assets\internal\"
Код:
if TFile.Exists(TPath.Combine(TPath.GetDocumentsPath,'MyFile.txt')) then TFile.Delete(TPath.Combine(TPath.GetDocumentsPath,'MyFile.txt'));
В общем все отрабатывает как надо, но не уверен в правильности метода.
Если подскажите более рациональный метод - буду благодарен.
ZBEP вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Delphi XE7 & Genymotion NEoMASTERR Общие вопросы Delphi 3 04.10.2014 22:22
Дублирование столбца Konkurd Общие вопросы C/C++ 2 26.02.2014 23:45
Дублирование. Sh1ft SQL, базы данных 0 05.06.2013 06:37
Дублирование информации. lovetolaugh БД в Delphi 2 17.06.2011 07:13
Дублирование(файл) ТРОЯН=) Помощь студентам 5 30.03.2009 10:33