2011-01-22 2 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으로 업그레이드 할 때 심볼 이름이 내장 '규칙'xml에서 변경되면서 비슷한 문제가 발생했습니다. 2.1은 ant_rules_3.xml을 사용하는 것 같았습니다. 이제 SDK 2.3은 main_rules.xml을 시작점으로 사용합니다. 나처럼 규칙 파일의 대상을 기반으로 build.xml을 사용자 정의한 경우 다음에 설명 된대로 link text

의 build.xml을 적용하여 샘플 프로젝트를 작성하면 쉽게 다시 시작할 수 있습니다. main_rules.xml에 나열된 대상의 일부 또는 전부를 무시할 수 있습니다. (이것은 sdk \ tools \ ant 폴더에 있습니다). 이 프로세스가 상당히 빠르다는 것을 알게되었고, 간단한 프로젝트의 경우 생성 된 파일이 Ant를 사용하여 즉시 사용할 수있게되었습니다. (main.rules.xml이 처리 할 수없는 .aidl 파일을 포함하는 두 번째 소스 폴더가 포함 된 프로젝트의 경우 build.xml을 많이 변경해야했습니다.)

aapt

<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의 이름을 생각하십시오 main_rules.xml에, 당신이 모방하기 위해 필요한이 사람은 아마. 내 빌드 스크립트는 apk를 생성하고 명시 적으로 resourcefilename의 이름을 지정하지 않고 bin 디렉토리에 넣습니다. 내가 빌드에서 데리러 것이다 있도록 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 

(물론 암호에서 그렇다!)처럼 내 build.properties 보인다 .properties.

관련 문제