Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
升级到SDK v20工具后,com.android.ant.NewSetupTask未找到错误_Ant_Sdk - Fatal编程技术网

升级到SDK v20工具后,com.android.ant.NewSetupTask未找到错误

升级到SDK v20工具后,com.android.ant.NewSetupTask未找到错误,ant,sdk,Ant,Sdk,升级到v20 SDK工具后,我在尝试运行Ant构建时收到此错误 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.c

升级到v20 SDK工具后,我在尝试运行Ant构建时收到此错误

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

它到哪里去了?

问题源于我使用的是一个完全定制的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" />

替换旧任务def。在我的build.xml文件中,这个新的task def语句删除了对缺少的任务的引用并修复了我的问题。

使用[ANDROID\u HOME]\ANDROID sdk\tools\ant下更新的build.xml,您不需要添加自定义ant任务定义

ANDROID sdk\tools\lib
下检查anttask.jar

build.xm
l上,它可能是
anttask.jar
,但新sdk的名称是
anttask.jar

所以,在xml或文件系统上更改名称。

很好![您可能希望将答案放入“答案”字段并接受它。]是的,如果build.xml导入[ANDROID\u HOME]\ANDROID sdk\tools\ant\build.xml,则是这样。但是,如果您已经完全自定义了build.xml文件,则可能不会导入此文件,因此需要更新任务定义。适当地,为了添加更多的细节,这是一件好事(我还使用一个完全定制的build.xml ANT文件从一个SDK v20到v22),但是,您还需要修改android.antlibs path元素,因为一些JAR已经在{SDK.dir}/tools/lib路径下重命名,名称现在是{SDK.dir}/tools/lib/ant-tasks.jar谢谢你的回答,它帮助我解决了类似的问题,但并不是确切的问题。
<taskdef resource="anttasks.properties" classpathref="android.antlibs" />