hmm if you use the proper version of Ant this should not be required.
I double checked it a few days ago.
you do need Ant 1.8

On Fri, Dec 10, 2010 at 11:52 AM, Matt Quigley
<[email protected]> wrote:
>> Andreas,
>> I'm not sure where you added that line <path refid="jar.libs.ref" />.
>> I need to make this fix in the build.xml file, not in the Android SDK
>> Tools directory, because this change needs to work on all of my team's
>> machines and the build machine.  I'll try to find a solution and post
>> it here.
>>
>
> I've found the problem.  In the latest version of the Android SDK
> Tools (v8), the ${sdk}/tools/ant/main_rules.xml contains the build
> targets for regular Android projects built with Ant.  In this file,
> inside the <macrodef name="dex-helper"> element, there is a command
> which calls the application dx which creates the classes.dex file for
> you.  It is missing the external libs when called from the -dex
> target.   Right now, the ERRONEOUS program is run like:
>
> java  -Xmx1024M -Djava.ext.dirs=lib\ -jar lib\dx.jar  --dex --output=C:
> \xxx\bin\classes.dex C:\xxx\bin\classes
>
> However, it SHOULD be run including the external jar libraries as the
> source, along with the java class files:
>
> java  -Xmx1024M -Djava.ext.dirs=lib\ -jar lib\dx.jar  --dex --output=C:
> \xxx\bin\classes.dex C:\xxx\bin\classes c:\xxx\lib\external_lib.jar
>
> In order to fix this, you can do two things.  One, is to change the $
> {sdk}/tools/ant/main_rules.xml file yourself by changing the -dex
> target from:
>
>        <if condition="${manifest.hasCode}">
>            <then>
>                <dex-helper />
>            </then>
>            <else>
>                <echo>hasCode = false. Skipping...</echo>
>            </else>
>        </if>
>
> to:
>
>        <if condition="${manifest.hasCode}">
>            <then>
>                <dex-helper>
>                        <external-libs>
>                        <path refid="jar.libs.ref" />
>                        </external-libs>
>                </dex-helper>
>            </then>
>            <else>
>                <echo>hasCode = false. Skipping...</echo>
>            </else>
>        </if>
>
> Although that solution will work for most developers, it will not work
> if you need to propagate this fix across all team members working on
> the project.  As an alternative, you can fix it in your own project's
> build file (build.xml) by ensuring that the external .jar files are
> included in the input directory.  You can do this by copying the .jar
> files to the dex input directory before the dex target is called:
>
>    <target name="-pre-compile">
>
>        <!-- To fix a bug in Android SDK Tools v8, we need to copy the
> external
>             libraries to the binary output directory, so that the .jar
> is
>             included by the DX compiler. This will be unnecessary in the
> future
>             when the bug is fixed; see
>             http://code.google.com/p/android/issues/detail?id=13091. -->
>                <copy todir="${out.classes.absolute.dir}">
>                        <fileset dir="${jar.libs.absolute.dir}"/>
>                </copy>
>        </target>
>
> If you fix it in your own build.xml file, then everyone who checks out
> the project will be able to build the project correctly, without
> having to change the SDK Tools local to their machine.
>
> This is documented in the bug here:
> http://code.google.com/p/android/issues/detail?id=13091
>
> --
> Matt Quigley
> www.androidengineer.com
>
> --
> You received this message because you are subscribed to the Google
> Groups "Android Developers" group.
> To post to this group, send email to [email protected]
> To unsubscribe from this group, send email to
> [email protected]
> For more options, visit this group at
> http://groups.google.com/group/android-developers?hl=en
>



-- 
Xavier Ducrohet
Android SDK Tech Lead
Google Inc.

Please do not send me questions directly. Thanks!

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to