9

私は Android ビルド システム用のいくつかの Ant スクリプトに取り組んでおり、aapt を呼び出す要素に遭遇しました。私は多くの例を見てきました

exec executable="${aapt}"

ただし、main_rules.xml ファイルから出力されるものは異なる形式を使用します

    <aapt executable="${aapt}"
            command="package"
            debug="${build.packaging.debug}"
            manifest="AndroidManifest.xml"
            assets="${asset.absolute.dir}"
            androidjar="${android.jar}"
            apkfolder="${out.absolute.dir}"
            resourcefilename="${resource.package.file.name}"
            resourcefilter="${aapt.resource.filter}">
        <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>

この要素を使用してパッケージの名前を変更したいのですが、使用方法に関するドキュメントが見つかりません。どこで見つけられるか知っている人はいますか?

ありがとう

4

3 に答える 3

7

私は何も見つけることができず、うまくいくように見える次のものを使用することになりました

    <exec executable="${aapt}" failonerror="true">
      <arg value="package" />
      <arg value="-f" />
      <arg value="-v" />
      <arg value="-M" />
      <arg path="AndroidManifest.xml" />
      <arg value="-A" />
      <arg path="assets" />
      <arg value="-I" />
      <arg path="${android.jar}" />
      <arg value="-m" />
      <arg value="-J" />
      <arg path="${out.absolute.dir}" />
      <arg value="-F" />
      <arg path="${out.absolute.dir}/${resource.package.file.name}" />
      <arg value="-S" />
      <arg path="res" />
      <arg value="--rename-manifest-package" />
      <arg value="my.new.package.name" />
    </exec>
于 2011-07-26T08:45:43.770 に答える
7

Android SDK の新しい (より新しい) バージョンでは、ant ビルド スクリプトは別の方法で動作します。要素を介してaaptコマンドを直接呼び出すのexecではなく、aapt タスクを定義します。後者は Java クラスによって実装されcom.android.ant.AaptExecTaskます。このクラスは、aapt コマンド ライン オプションのサブセットのみを提供します。

aapt コマンド ライン オプションと ant パラメーターの間のマッピングの簡単な説明は、ソース Java ドキュメントに記載されています。

Aapt Option             Ant Name        Type
---------------------------------------------------------------------------------
path to aapt            executable      attribute (Path)
command                 command         attribute (String)
-v                      verbose         attribute (boolean)
-f                      force           attribute (boolean)
-M AndroidManifest.xml  manifest        attribute (Path)
-I base-package         androidjar      attribute (Path)
-A asset-source-dir     assets          attribute (Path
-S resource-sources     <res path="">   nested element(s)
                                        with attribute (Path)
-0 extension            <nocompress extension="">  nested element(s)
                        <nocompress>               with attribute (String)
-F apk-file             apkfolder                  attribute (Path)  
                        outfolder                  attribute (Path) deprecated
                        apkbasename                attribute (String)
                        basename                   attribute (String) deprecated

-J R-file-dir       rfolder         attribute (Path)
                                    -m always enabled

私が知る限り、この新しいビルド タスクを通じて一般的な aapt オプションを提供する方法はありません。これは、SDK の build.xml の変更されたコピーを取得し、aapt 呼び出しを置き換えることによってのみ可能になるようです。

誰かがより良い解決策を知っているなら、私も読んでうれしいです;-)

編集:SDKのさらに新しいバージョンでは、パッケージの名前変更が再び導入されました:

Aapt Option   --rename-manifest-package package-name 
Ant Name      manifestpackage
Type          attribute (String)
于 2012-02-02T10:52:31.523 に答える
1

ソースコード以外にドキュメントがあるとは思えません。

于 2011-07-24T22:31:02.447 に答える