2011-01-22 15 views
0

私のSDKを2.3にアップグレードし、ビルドスクリプトが失敗し始めました。私はこのエラーを取得しています:aapt basename属性

のbuild.xml:363:aaptexecは私のビルドスクリプトに次の行について「ベース名」属性

をサポートしていません:

<aapt executable="${aapt}" command="package" manifest="AndroidManifest.xml" resources="${resource.absolute.dir}" assets="${asset.absolute.dir}" androidjar="${android.jar}" outfolder="${out.absolute.dir}" basename="${ant.project.name}" /> 

を私は知りませんaaptで変わったものの、明らかにbasenameはもう存在しない。代わりに私は何を使うべきか教えていただけますか?

答えて

1

2.1から2.3へのアップグレード時に、組み込みの 'rules' xmlで記号名が変更されて同様の問題が発生しました。 2.1ではant_rules_3.xmlを使用していたようですが、SDK 2.3ではmain_rules.xmlを使用しています。私と同じように、rulesファイルのターゲットに基づいてbuild.xmlをカスタマイズした場合、次のようにサンプルプロジェクトを作成することで、簡単に開始することができます。link text

build.xml main_rules.xmlにリストされているターゲットの一部またはすべてをオーバーライドします。 (これはsdk \ tools \ antフォルダにあります)。私はこのプロセスが合理的に迅速であることを発見しました。そして、単純なプロジェクトでは、生成されたファイルはAntを使って「すぐに」働いていました。 (main.rules.xmlが対処できないので、.aidlファイルを含む2番目のソースフォルダを含むプロジェクト用にbuild.xmlをたくさん変更する必要がありました)

aaptを参照する2つのターゲットがありますmain_rules.xmlで、それはおそらくあなたが模倣する必要があり、この一つだ:

<target name="-package-resources"> 
    <echo>Packaging resources</echo> 
    <aapt executable="${aapt}" 
     command="package" 
     versioncode="${version.code}" 
     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> 
</target> 

私はresourcefilenameが発生したAPKの名前だと思います。私のビルドスクリプトはapkを生成し、私がリソースファイル名を明示的に指定することなく、それらをbinディレクトリに入れます。 私のbuild.propertiesは、次のようになります。それはビルドからそれを拾うなるように、私は、buid.xmlでプロジェクト名をコメントアウトしなかった

#----------------------------------------------- 
# The ONLY reference to the project's main base 
# 
projectname=MapProject1.2 
# 
#----------------------------------------------- 

workspace.dir=/dev/projects/EclipseHelios/AndroidWorkspace 
ant.project.name=${projectname} 
outbasebase.dir=/dev/projects/AntBuilds 
base.dir=${workspace.dir}/${projectname} 
common_src=/dev/projects/CommonSource121210/GridSeviceAndUseGridService 
source.dir=${base.dir}/src 
outbase.dir=${outbasebase.dir}/${projectname} 

out.dir=${outbase.dir}/bin 
key.store=c:/users/me/my-release-key.keystore 
key.alias=release_alias 
key.store.password=************* 
key.alias.password=************* 
layout.dir=${base.dir}/res/layout 

(別に当然のパスワードから!)

.properties。