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