другое расположение AndroidManifest.xml - PullRequest
2 голосов
/ 14 сентября 2011

У меня есть пользовательская сборка для проекта Android. есть build.xml и build.properties. build.properties содержит эту строку:

manifest.file = $ {env.WORK_FOLDER} /AndroidManifest.xml

и WORK_FOLDER правильно установлены на proj_root_work .

макет выглядит следующим образом:

proj_root-_work [DIR] (some stuff gets preprocessed and all finally copied here - src, res, assets and the AndroidManifest.xml)
         -build.xml 
         -build.properties

тогда я вызываю муравья для моей конфигурации сборки из proj_root и он жалуется на то, что не нашел AndroidManifest.xml . когда я положил его в мой proj_root, он работает, но я действительно хочу это в моем каталоге _Work. я прочитал, что файл должен быть в корне, какой смысл записи build.properties? Также я видел некоторые пользовательские параметры для aapt.exe ...

Любые советы приветствуются, спасибо

Ответы [ 2 ]

1 голос
/ 14 ноября 2011

Вы можете дать команды ant для использования альтернативного местоположения AndroidManifest.xml, используя определение, данное aapt во время сборки, например, "app_manifest":

ant -Dapp_manifest=_Work/AndroidManifest.xml

Затем добавьте следующий блок для сборки.xml:

    <target name="-package-resources" depends="-crunch">
    <!-- only package resources if *not* a library project -->
    <do-only-if-not-library elseText="Library project: do not package resources..." >
        <aapt executable="${aapt}"
                command="package"
                versioncode="${version.code}"
                versionname="${version.name}"
                debug="${build.is.packaging.debug}"
                manifest="${app_manifest}"
                assets="${asset.absolute.dir}"
                androidjar="${android.jar}"
                apkfolder="${out.absolute.dir}"
                nocrunch="${build.packaging.nocrunch}"
                resourcefilename="${resource.package.file.name}"
                resourcefilter="${aapt.resource.filter}"
                projectLibrariesResName="project.libraries.res"
                projectLibrariesPackageName="project.libraries.package"
                previousBuildType="${build.last.target}"
                buildType="${build.target}">
            <res path="${out.res.absolute.dir}" />
            <res path="${resource.absolute.dir}" />
            <!-- <nocompress /> forces no compression on any files in assets or res/raw -->
            <!-- <nocompress extension="xml" /> forces no compression on specific file extensions in assets and res/raw -->
        </aapt>
    </do-only-if-not-library>
</target>

Это разрешит "app_manifest" к тому, что вы ему дадите.

0 голосов
/ 17 ноября 2012

Я просто положил

<property name="manifest.file" value="AndroidManifest.xml.tmp" />

в build.xml, ниже этой строки

<property file="local.properties" />

и это хорошо работает

...