#android #ant #resources
#Android #ant #Ресурсы
Вопрос:
Я использую библиотеку Java, в которую встроен файл .xml, и использую это в коде с помощью Library.class.getResourceAsStream("file.xml")
.
Когда я собираю с eclipse
, все идет нормально. Когда я создаю с ant
(без proguard), ресурс не может быть найден при запуске приложения.
После некоторого поиска выясняется, что файл .xml не был добавлен в папку bin / classes. Итак, я добавил действие копирования после javac
команды в build.xml
файле.
<copy todir="${out.classes.absolute.dir}">
<fileset dir="${lib_src}/src" includes="**/*.xml" />
</copy>
Это работает, в том смысле, что файлы xml теперь присутствуют в classes
папке. Однако они не включаются в финальный пакет apk.
Что здесь происходит не так? Какое действие сборки мне нужно изменить?
Ответ №1:
Посмотрите на свой /tools/ant/main_rules.xml файл. Это основной файл сборки, который Android использует для своих сборок Ant. В соответствии с этим у вас должны быть файлы вашей библиотеки в папке с именем «libs».
В любом случае, это хорошая идея для вас просмотреть этот XML-файл. В нем будет подробно объяснено, что происходит, когда вы выполняете сборки Ant из командной строки.
Комментарии:
1. Да, я скопировал это в свой пользовательский build.xml . Согласно инструкциям. Однако я не могу найти, где в процессе все идет не так. Должен ли dexing добавлять файлы .xml, например, в dex?
2. Если вы правильно настроили папку libs, ваши XML-файлы должны были быть упакованы в apk. Это потребует устранения неполадок, я думаю, вы можете поместить задачу Ant <echo> в main_rules.xml чтобы распечатать значения и понять, что происходит.
Ответ №2:
Я решил эту проблему, создав библиотеку только для Android, а не для generic java. Я добавил XML-файл в resources
каталог, я думаю, что это было в raw
каталоге или xml
dir. Затем я использовал стандартный способ Android для получения этих ресурсов.
Комментарии:
1. Не могли бы вы объяснить подробнее, пожалуйста? Что значит сделать его доступным только для Android? и как?
2. Создание проекта библиотеки Android. Просто создайте проект библиотеки Android и добавьте исходные файлы java в папку src. Затем обратитесь к библиотеке из вашего приложения для Android.