Upps, did jsut now read they you are actually already planing to fail. :-) Good then... -- Andreas
On Dec 10, 12:01 pm, Xavier Ducrohet <[email protected]> wrote: > 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

