#android #eclipse
#Android #eclipse
Вопрос:
Мне нужно создать бренд моего приложения, и нужно настроить только несколько изображений, кодовая база такая же, за исключением нескольких сгенерированных констант.
Поскольку aapt позволяет указывать множество каталогов ресурсов, есть ли какой-либо способ указать каталоги res в файле Eclipse .classpath? Что-то вроде
<classpathentry kind="androidres" path="res/common" />
<classpathentry kind="androidres" path="res/brand/mybrand_a" />
Или есть какой-либо другой способ сделать это?
Спасибо
Ответ №1:
Вы пробовали использовать символические ссылки из каталогов вашего бренда на основной res/
каталог?
Комментарии:
1. Я использую Windows. Для этого потребуется создать символическую ссылку для каждого настроенного изображения. Это не масштабируется.
2. вы не можете имитировать одну и ту же структуру каталогов и просто создать символическую ссылку для корневого каталога?
3. Обходным путем было бы копирование настроенных изображений в каталог res. Это было бы последним решением (в Windows), поскольку даже aapt не справляется с несколькими каталогами. Я попробовал,
aapt package -S res -S branding/mybrand/res -M AndroidManifest.xml -A assets -J build/gen -I D:/software/android-sdk-windows/platforms/android-8/android.jar
который регистрирует тонны ошибок. Указание только одного каталога souce (-Ов) делает aapt более счастливым.
Ответ №2:
У меня нет проблем с тем, чтобы заставить aapt использовать несколько каталогов ресурсов. Цель для создания ресурсов в моем ant build.xml содержит то, что показано ниже, и фирменные ресурсы имеют приоритет над небрендовыми. Однако я не вижу никакого способа сделать эквивалент для сборки с Eclipse.
<exec executable="${aapt}" failonerror="true">
<arg value="package" />
<arg value="-m" />
<arg value="-J" />
<arg path="${folder.gen}" />
<arg value="-M" />
<arg path="AndroidManifest.xml" />
<arg value="-I" />
<arg path="${android.jar}" />
<arg value="-A" />
<arg path="${location.assets.branded}" />
<arg value="-S" />
<arg path="${location.res.branded}" />
<arg value="-S" />
<arg path="${location.resource}" />
</exec>