梦书之家(移动开发)

你有一个苹果,我有一个苹果,我们交换一下,一人还是一个苹果;你有一个思想,我有一个思想,我们交换一下,一人就有两个思想。 ——肖伯纳

导航

taskdef class com.android.ant.NewSetupTask cannot be found

这两天更新到最新的ADT与SDK,但是打包的时候却出现如题的错误,是我的ANT文件中引用了:

    <!-- jar file from where the tasks are loaded -->
    <path id="android.antlibs">
        <pathelement path="${sdk.dir}/tools/lib/anttasks.jar" />
    </path>

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

后来,用JD-Gui查看anttasks.jar中确实没有com.android.ant.NewSetupTask,坑爹啊。

在网上也没有搜索到,没办法只好先用同事机器上旧的anttasks.jar.

是不是移动到哪个JAR包中了呢?

对比了代码,应该是 com.android.ant.NewSetupTask 被分解成几个小类了:CheckEnvTask, GetTypeTask, GetTargetTask

NewSetupTask = CheckEnvTask + GetTypeTask + GetTargetTask + ...

得把之前的setup 一个个分解,晕

之前的

<setup

....

/>

====》

<CheckEnvTask />
<gettypetask
projectTypeOut="android.project.type"/>
<gettargettask
androidJarFileOut="android.jar"
androidAidlFileOut="android.aidl"
targetApiOut="target.api"
bootclasspathrefOut="android.target.classpath"/>

....

也可以参考:/opt/android-sdk-linux_x86/tools/ant/build.xml文件,这个也是更新过的了

<!-- Pre build setup -->
    <target name="-build-setup" depends="-setup">
....


<!-- Basic Ant + SDK check -->
    <target name="-check-env">
        <checkenv />
    </target>

    <!-- target to disable building dependencies -->
    <target name="nodeps">
        <property name="dont.do.deps" value="true" />
    </target>

    <!-- generic setup -->
    <target name="-setup" depends="-check-env">
        <echo level="info">Project Name: ${ant.project.name}</echo>
        <gettype projectTypeOut="project.type" />
...

posted on 2012-07-09 17:13  梦书  阅读(2941)  评论(4编辑  收藏  举报