Eclipse: укажите несколько каталогов res, например, указав несколько каталогов src

#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>