Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
构建android apk时如何将参数传递给aapt?_Android_Ant_Assets_Aapt - Fatal编程技术网

构建android apk时如何将参数传递给aapt?

构建android apk时如何将参数传递给aapt?,android,ant,assets,aapt,Android,Ant,Assets,Aapt,我正在Linux上使用ant构建一个apk(不使用Eclipse),我正在尝试找到一种在压缩资产和不压缩资产之间切换的简单方法,以便将我庞大的数据库解压缩到

我正在Linux上使用ant构建一个apk(不使用Eclipse),我正在尝试找到一种在压缩资产和不压缩资产之间切换的简单方法,以便将我庞大的数据库解压缩到<2.3。根据本文:

我发现可以通过指定类似于
aapt-0db
的内容来实现这一点,但我找不到有关如何编辑ant与aapt交互方式的信息。还是我必须自己运行aapt?我该怎么做?

是Android的build.xml(您可以在SDK、工具和ant中找到)在构建时执行AAPT

找到build.xml并用下面的目标替换“-package resources”目标。我很确定(目前无法测试)在使用ANT构建时,您可以使用“-Dcompression.disabled=set”或.properties文件中的“compression.disabled=set”打开或关闭压缩

<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="AndroidManifest.xml"
                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}" />
            <if>
                <condition>
                    <isset property="compression.disabled" />
                </condition>
                <then>
                    <nocompress/>
                </then>
            </if>
        </aapt>
    </do-only-if-not-library>
</target>


谢谢;我并没有走这条路,因为这会让apk变得巨大,但我很高兴知道答案。好吧!通过向nocompress元素添加一个扩展属性,也可以按文件类型设置
有人找到了不修改android sdk内部文件的方法吗?你不会修改android sdk内部文件-而是在你自己的项目中将规则添加到build.xml文件中感谢Sveinung Kval Bakken的回答,但对于像我这样不熟悉ant的人来说,这还不够。对于其他人:您希望从android_sdk_dir/tools/ant/build.xml复制
,并将其粘贴到项目目录中
之前的build.xml中,然后修改显示
的行,请参阅项目build.xml末尾的注释以获取指导。