这两天更新到最新的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" /> ...