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