2011-09-14 28 views
2

私はアンドロイドプロジェクト用のカスタムビルドチェーンを持っています。 build.xmlとbuild.propertiesがあります。AndroidManifest.xmlの別の場所

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

WORK_FOLDERが正しくproj_root_workに設定されている: build.propertiesは、この行が含まれています。

レイアウトは、次のようなものです:

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するためにいくつかのカスタムパラメータを見て、THX

+1

コンパイルする前によく働きますジョブが完了したら削除しますか? – JohnUopini

+0

thx、私はすでにそれについて考えてきました。バッチスクリプトを使って、これをやっているのか、今、どうやってやっているのか。私は他のソリューションがあるかどうかを知りたがっています... – didito

答えて

1

あなたはビルド中にAAPTした定義を使用して、代替のAndroidManifest.xmlの場所を使用する蟻の指示を与えることができます例えば、 "app_manifest":次に

ant -Dapp_manifest=_Work/AndroidManifest.xml 

は、build.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> 

これは「解決されますpp_manifest "をあなたが与えたものに置き換えます。

0

私はただ単にこのライン

<property file="local.properties" /> 

の下、build.xmlの中で

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

を入れて、それが

ANTを使用してrootにマニフェストをコピーしないのはなぜ
関連する問題