Я создаю библиотеку Android и имеет папку assets
с изображениями.
Когда я использую его в другом проекте, активы не копируются.
У кого-нибудь еще была эта проблема?
Я создаю библиотеку Android и имеет папку assets
с изображениями.
Когда я использую его в другом проекте, активы не копируются.
У кого-нибудь еще была эта проблема?
новая система создания Android, основанная на Gradle, поддерживает папки с ресурсами в библиотечных проектах!
С построением на основе ANT это все еще невозможно:
Библиотечные проекты не могут включать в себя необработанные активы. (См. docs)
Но вы могли
Можно поместить активы в итоговую библиотечную банку с помощью небольшого исправления:
Поместите " custom_rules.xml" в ваш проект проекта библиотеки (рядом с build.xml):
<?xml version="1.0" encoding="UTF-8"?>
<project name="custom_rules">
<target name="-post-compile" if="${project.is.library}">
<echo>Post Compile: add assests from ${asset.absolute.dir} to ${out.library.jar.file}</echo>
<jar destfile="${out.library.jar.file}" update="true">
<zipfileset dir="${asset.absolute.dir}" prefix="assets" excludes="**/*.java ${android.package.excludes}"/>
</jar>
</target>
Это упакует ваши библиотечные активы в итоговую библиотечную банку. В результате эти активы будут включены в итоговый файл .apk вашего приложения.
Проверено на Android SDK Tools Revision 21.1.0 на OSX
Из Eclipse и ANT вы можете ссылаться на одну и ту же папку "активы" из нескольких проектов. Это позволяет исходному дереву иметь одну копию файлов активов, но включать их в несколько APK.
Смотрите Android: целевые папки res для отладки в eclipse
Из ProjectA я смог ссылаться.. \ProjectA\Assets из ProjectB. На Eclipse (по крайней мере, по Windows, я еще не пробовал в Linux), мне пришлось создать новую переменную для ссылки.. \ProjectA и использовать эту переменную в "Location Link Folder". Если я попытался использовать ".." в "Location Linked Folder Location", то eclipse не согласился бы с этим.
Для тех, кто использует IntelliJ IDEA, вы можете внести изменения в настройки упаковки вашего приложения, чтобы включить в него активы децентрализованного. Обратите внимание, что это было сделано в версии 14.0.2 издания IntelliJ Community. Мой основной модуль приложения теперь наследует файлы из моей папки ресурсов проекта библиотеки, как если бы они были правы в главном проекте!
Щелкните правой кнопкой мыши модуль приложения > Открыть модуль. Выберите дерево Android node в модуле > вкладка "Упаковка". Установите флажок "Включить активы из зависимостей в APK"
Примечание. Я никогда не пользовался Android Studio, но я бы предположил, что в этом приложении есть аналогичный параметр.
начать с создания проекта андроида lib, закрыть после создания. это приведет к отключению autobuild
использовать cmd-терминал для Windows. Команда android - пакетный файл
добавить инструменты в путь C:\Users\user_bss > PATH =% PATH%; C:\ADT-пачке окна-x86-20140321\SDK\инструменты
Создать build.xml для ant Проект обновления андроида -p C:\Users\user_bss\Documents\Workspace\SDKAdvanced -n SDKAdvanced
notepad custom_rules.xml добавить код сверху не забывайте конечный тег
запустить "ant debug" или "ant release" для сборки
вы увидите class.jar в bin dir, это ваша упакованная lib