2012-07-17 75 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

相关问题