2012-07-17 58 views
4

升級到v20 SDK工具後,嘗試運行我的Ant構建時出現此錯誤。升級到SDK v20工具後未找到com.android.ant.NewSetupTask錯誤

sdk.dir屬性是正確的並被驗證(添加到build.xml中的輸出)。解壓縮anttasks.jar似乎NewSetupTask在最新的工具中確實缺失。

META-INF/ 
META-INF/MANIFEST.MF 
com/ 
com/android/ 
com/android/ant/ 
com/android/ant/RenderScriptTask.class 
com/android/ant/SingleDependencyTask$1.class 
com/android/ant/PropertyByReplaceTask.class 
com/android/ant/BuildTypedTask.class 
com/android/ant/AaptExecTask$1.class 
com/android/ant/AaptExecTask$ResFolderInputPath.class 
com/android/ant/AaptExecTask$NoCompress.class 
com/android/ant/ApkBuilderTask.class 
com/android/ant/GetLibraryPathTask.class 
com/android/ant/InputPath.class 
com/android/ant/RenderScriptTask$OptLevel.class 
com/android/ant/TaskHelper.class 
com/android/ant/XPathTask.class 
com/android/ant/ManifestMergerTask.class 
com/android/ant/DependencyHelper$LibraryProcessor.class 
com/android/ant/CheckEnvTask.class 
com/android/ant/RenderScriptTask$1.class 
com/android/ant/ApkBuilderTask$SourceFolderInputPath.class 
com/android/ant/DependencyHelper$JarProcessor$1.class 
com/android/ant/ComputeDependencyTask.class 
com/android/ant/SingleInputOutputTask.class 
com/android/ant/GetLibraryPathTask$1.class 
com/android/ant/RenderScriptTask$RenderScriptProcessor.class 
com/android/ant/SignApkTask.class 
com/android/ant/DependencyHelper$JarProcessor.class 
com/android/ant/SignApkTask$NullZipFilter.class 
com/android/ant/DependencyHelper$AdvancedLibraryProcessor.class 
com/android/ant/DependencyGraph.class 
com/android/ant/ComputeDependencyTask$1.class 
com/android/ant/DexExecTask.class 
com/android/ant/MultiFilesTask.class 
com/android/ant/AidlExecTask$1.class 
com/android/ant/DependencyHelper.class 
com/android/ant/AidlExecTask.class 
com/android/ant/BuildConfigTask.class 
com/android/ant/ApkBuilderTask$1.class 
com/android/ant/AaptExecTask.class 
com/android/ant/SingleDependencyTask.class 
com/android/ant/DependencyGraph$1.class 
com/android/ant/ZipAlignTask.class 
com/android/ant/GetTypeTask.class 
com/android/ant/GetEmmaFilterTask.class 
com/android/ant/IfElseTask.class 
com/android/ant/DependencyGraph$DependencyStatus.class 
com/android/ant/AidlExecTask$AidlProcessor.class 
com/android/ant/ComputeProjectClasspathTask.class 
com/android/ant/SingleDependencyTask$InputPathFactory.class 
com/android/ant/GetTargetTask$1.class 
com/android/ant/MultiFilesTask$DisplayType.class 
com/android/ant/MultiFilesTask$SourceProcessor.class 
com/android/ant/GetProjectPathsTask.class 
com/android/ant/SignApkTask$1.class 
com/android/ant/GetTargetTask.class 
com/android/ant/ComputeDependencyTask$2.class 
com/android/ant/GetLibraryPathTask$LeafProcessor.class 
anttasks.properties 

它去哪兒了?

+0

趕上! [您可能希望將答案放在Answer字段中並接受它。] – Shreesh 2012-07-18 14:50:52

回答

7

該問題源於我正在使用完全自定義的build.xml文件的事實。因此,它包含下列定製Ant任務定義:

<taskdef name="setup" 
    classname="com.android.ant.NewSetupTask" 
    classpathref="android.antlibs" /> 

<taskdef name="aapt" 
    classname="com.android.ant.AaptExecTask" 
    classpathref="android.antlibs" /> 

<taskdef name="aidl" 
    classname="com.android.ant.AidlExecTask" 
    classpathref="android.antlibs" /> 

<taskdef name="renderscript" 
    classname="com.android.ant.RenderScriptTask" 
    classpathref="android.antlibs" /> 

<taskdef name="dex" 
    classname="com.android.ant.DexExecTask" 
    classpathref="android.antlibs" /> 

<taskdef name="apkbuilder" 
    classname="com.android.ant.ApkBuilderTask" 
    classpathref="android.antlibs" /> 

<taskdef name="zipalign" 
    classname="com.android.ant.ZipAlignTask" 
    classpathref="android.antlibs" /> 

<taskdef name="xpath" 
    classname="com.android.ant.XPathTask" 
    classpathref="android.antlibs" /> 

<taskdef name="if" 
    classname="com.android.ant.IfElseTask" 
    classpathref="android.antlibs" /> 

一個或多個這些由anttasks.jar庫中不再提供。在比較與一個位於{sdk.dir}/tools/ant/build.xml我的build.xml文件我注意到,這些定義已經被替換爲以下內容:

<taskdef resource="anttasks.properties" classpathref="android.antlibs" /> 

新老交替任務DEFS。在我的build.xml文件中使用這個新任務def語句刪除了對缺失任務的引用並修復了我的問題。

+0

要添加更多細節,這是一件好事(我也正在從SDK v20升級到v22,並使用完全自定義的build.xml ANT文件),而且還需要修改android.antlibs路徑元素,因爲某些JAR已在{sdk.dir}/tools/lib路徑下重命名,現在名稱爲{sdk.dir}/tools/lib /ant-tasks.jar – 2013-05-23 08:33:24

0

使用下[ANDROID_HOME] \ Android的SDK \工具\螞蟻更新build.xml文件,你並不需要添加定製Ant任務定義

+0

是的,如果你的build.xml導入了[ANDROID_HOME] \ android-sdk \ tools \ ant \ build.xml,那也是如此。但是,如果您完全自定義了您的build.xml文件,則可能不會導入此文件,因此您需要更新任務清單。適當。 – 2012-08-10 23:01:31

2

檢查android-sdks\tools\lib下您的anttask.jar。

在您build.xm L,這可能是anttask.jar但新的SDK它的名字是ant-task.jar。 因此,更改xml或文件系統上的名稱。

+0

謝謝你的幫助,它幫助我解決了類似問題,但不是確切的問題。 – 2014-03-07 10:28:49

相關問題