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