Kawa build.xml patch for Android

Marius Kjeldahl marius@kjeldahl.net
Tue Jul 3 17:42:00 GMT 2012


Thank you, very inspiring!

Since I haven't had much luck in duplicating your work in reducing the 
apk payloads, I tried cloning your SchemeAndroidOGL project and see if I 
could get it to build.

Updating the make script and proguard.cfg file to use kawa 1.12.1 and 
android-15, I get lots of errors. I've attached the output from the make 
process. The first set of warnings I get are:

> Reading library jar [/opt/android-sdk-linux/platforms/android-15/android.jar]
> Initializing...
> Warning: gnu.xquery.lang.XQueryScriptEngineFactory: can't find superclass or interface gnu.expr.AbstractScriptEngineFactory
> Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.Graphics2D
> Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.Graphics2D
> Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.Graphics2D
> Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.geom.AffineTransform

At the end of the process I get other types of error.

I did try to build using your included jar, but then it complained about 
the class format in your jar file not being supported. I'm on Sun Java 
1.6, so I guess you could be on 1.7.

Anyway, thanks for the hints so far.

Marius K.

On Tuesday 03 July 2012 07:04 PM, craven@gmx.net wrote:
> On Tue, 03 Jul 2012 14:54:51 +0200, Marius Kjeldahl <marius@kjeldahl.net> wrote:
>> First of all; great job on Android support for Kawa.
>>
>> With the latest Android SDK release, the patch provided for building
>> applications does not seem to work. With some minor modifications to the
>> targets I managed to get it working. I've attached the updated patch
>> below my email.
>>
>> Secondly, in an email list posting, Peter Feigl mentions being able to
>> reduce the Kawa apk payload down to 150KB. In my recent build of Kawa,
>> the apk payload is still around 1.2MB.
>
> A few numbers from my current projects:
> - OrgCalendar: 494K apk size
> - NotmuchMail: 269K apk size
> - FlashCards: 2.4M apk size (including 3.9M of ttf fonts in the apk)
> - SchemeOGL: 84K apk size (https://github.com/ecraven/SchemeAndroidOGL)
>
> Things work out very well. My code is not good Scheme or idiomatic, but
> it does seem much more pleasurable than writing actual Java.
>
> Feel free to use any or all of my "build" files. I've tried (but swiftly
> failed) at adapting ant or any other Java build system to work the way I
> wanted it to.
>
> I'll gladly share any experiences I've had, find me on freenode
> (ecraven) or via e-mail :)


-------------- next part --------------
    (skipping file '.gitignore' due to ANDROID_AAPT_IGNORE pattern '.*')
Compiling Java
./gen/at/nexoid/schemeogl/R.java
Compiling Scheme
(compiling src/Main.scm to at.nexoid.schemeogl.Main)
Running ProGuard
ProGuard, version 4.4
Reading input...
Reading program directory [/home/marius/p/SchemeAndroidOGL/bin/classes]
Reading program directory [/home/marius/p/SchemeAndroidOGL/kawa]
Reading library jar [/opt/android-sdk-linux/platforms/android-15/android.jar]
Initializing...
Warning: gnu.xquery.lang.XQueryScriptEngineFactory: can't find superclass or interface gnu.expr.AbstractScriptEngineFactory
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.Shape
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.Shape
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.geom.Rectangle2D
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.WithTransform: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.Display: can't find referenced class java.awt.Dimension
Warning: gnu.kawa.models.Display: can't find referenced class java.awt.geom.Dimension2D
Warning: gnu.kawa.models.Display: can't find referenced class java.awt.geom.Dimension2D
Warning: gnu.kawa.models.Display: can't find referenced class java.awt.Dimension
Warning: gnu.kawa.models.Display: can't find referenced class java.awt.geom.Dimension2D
Warning: gnu.kawa.models.Display: can't find referenced class java.awt.geom.Dimension2D
Warning: gnu.kawa.models.Display: can't find referenced class java.awt.Dimension
Warning: gnu.kawa.models.Display: can't find referenced class java.awt.geom.Dimension2D
Warning: gnu.kawa.models.DrawShape: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.DrawShape: can't find referenced class java.awt.Shape
Warning: gnu.kawa.models.DrawShape: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.DrawShape: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.DrawShape: can't find referenced class java.awt.Shape
Warning: gnu.kawa.models.DrawShape: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.DrawShape: can't find referenced class java.awt.Shape
Warning: gnu.kawa.models.DrawShape: can't find referenced class java.awt.Shape
Warning: gnu.kawa.models.DrawShape: can't find referenced class java.awt.Shape
Warning: gnu.kawa.models.DrawShape: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.DrawShape: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.DrawShape: can't find referenced class java.awt.geom.Rectangle2D
Warning: gnu.kawa.models.DrawShape: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.DrawShape: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.Button: can't find referenced class java.awt.Color
Warning: gnu.kawa.models.Button: can't find referenced class java.awt.Color
Warning: gnu.kawa.models.Button: can't find referenced class java.awt.Color
Warning: gnu.kawa.models.Button: can't find referenced class java.awt.Color
Warning: gnu.kawa.models.Button: can't find referenced class java.awt.Color
Warning: gnu.kawa.models.Button: can't find referenced class java.awt.Color
Warning: gnu.kawa.models.Button: can't find referenced class java.awt.Color
Warning: gnu.kawa.models.Button: can't find referenced class java.awt.Color
Warning: gnu.kawa.models.FillShape: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.FillShape: can't find referenced class java.awt.Shape
Warning: gnu.kawa.models.FillShape: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.FillShape: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.FillShape: can't find referenced class java.awt.Shape
Warning: gnu.kawa.models.FillShape: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.FillShape: can't find referenced class java.awt.Shape
Warning: gnu.kawa.models.FillShape: can't find referenced class java.awt.Shape
Warning: gnu.kawa.models.FillShape: can't find referenced class java.awt.Shape
Warning: gnu.kawa.models.FillShape: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.FillShape: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.FillShape: can't find referenced class java.awt.geom.Rectangle2D
Warning: gnu.kawa.models.FillShape: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.FillShape: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.xquery.lang.XQueryScriptEngineFactory: can't find referenced class gnu.expr.AbstractScriptEngineFactory
Warning: gnu.xquery.lang.XQueryScriptEngineFactory: can't find referenced class gnu.expr.AbstractScriptEngineFactory
Warning: gnu.kawa.models.DrawImage: can't find referenced class javax.imageio.ImageIO
Warning: gnu.kawa.models.DrawImage: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.DrawImage: can't find referenced class java.awt.image.BufferedImage
Warning: gnu.kawa.models.DrawImage: can't find referenced class java.awt.image.BufferedImage
Warning: gnu.kawa.models.DrawImage: can't find referenced class java.awt.geom.Rectangle2D$Float
Warning: gnu.kawa.models.DrawImage: can't find referenced class java.awt.geom.Rectangle2D$Float
Warning: gnu.kawa.models.DrawImage: can't find referenced class javax.imageio.ImageIO
Warning: gnu.kawa.models.DrawImage: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.DrawImage: can't find referenced class java.awt.image.BufferedImage
Warning: gnu.kawa.models.DrawImage: can't find referenced class java.awt.geom.Rectangle2D
Warning: gnu.kawa.models.DrawImage: can't find referenced class java.awt.image.BufferedImage
Warning: gnu.kawa.models.DrawImage: can't find referenced class java.awt.image.BufferedImage
Warning: gnu.kawa.models.DrawImage: can't find referenced class java.awt.image.BufferedImage
Warning: gnu.kawa.models.DrawImage: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.DrawImage: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.DrawImage: can't find referenced class java.awt.geom.Rectangle2D
Warning: gnu.kawa.models.DrawImage: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.DrawImage: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.DrawImage: can't find referenced class java.awt.Image
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.Composite
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.geom.Rectangle2D
Warning: gnu.kawa.models.WithComposite: can't find referenced class [Ljava.awt.Composite;
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.Composite
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.geom.Rectangle2D
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.geom.Rectangle2D
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.Composite
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.Composite
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.Composite
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.Composite
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.Composite
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.Composite
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.Composite
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.Composite
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.Composite
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.Composite
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.geom.Rectangle2D
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.geom.Rectangle2D
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.WithComposite: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.Box: can't find referenced class java.awt.Dimension
Warning: gnu.kawa.models.Box: can't find referenced class java.awt.Dimension
Warning: gnu.kawa.models.Box: can't find referenced class java.awt.Dimension
Warning: gnu.kawa.models.Box: can't find referenced class java.awt.Dimension
Warning: gnu.kawa.slib.gui: can't find referenced class java.awt.Color
Warning: gnu.kawa.slib.gui: can't find referenced class java.awt.Color
Warning: gnu.kawa.slib.gui: can't find referenced class javax.imageio.ImageIO
Warning: gnu.kawa.slib.gui: can't find referenced class javax.imageio.ImageIO
Warning: gnu.kawa.slib.gui: can't find referenced class java.awt.image.BufferedImage
Warning: gnu.kawa.slib.gui: can't find referenced class java.awt.image.BufferedImage
Warning: gnu.kawa.slib.gui: can't find referenced class java.awt.image.BufferedImage
Warning: gnu.kawa.slib.gui: can't find referenced class java.awt.Color
Warning: gnu.kawa.slib.gui: can't find referenced class java.awt.image.BufferedImage
Warning: gnu.kawa.slib.gui: can't find referenced class java.awt.image.BufferedImage
Warning: gnu.kawa.slib.gui: can't find referenced class java.awt.image.BufferedImage
Warning: gnu.kawa.slib.gui: can't find referenced class java.awt.image.BufferedImage
Warning: gnu.kawa.slib.gui: can't find referenced class java.awt.image.BufferedImage
Warning: gnu.kawa.models.Paintable: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.Paintable: can't find referenced class java.awt.geom.Rectangle2D
Warning: gnu.kawa.models.Paintable: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.WithPaint: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.WithPaint: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.WithPaint: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.WithPaint: can't find referenced class java.awt.Paint
Warning: gnu.kawa.models.WithPaint: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.WithPaint: can't find referenced class java.awt.Paint
Warning: gnu.kawa.models.WithPaint: can't find referenced class java.awt.Paint
Warning: gnu.kawa.models.WithPaint: can't find referenced class java.awt.Paint
Warning: gnu.kawa.models.WithPaint: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.WithPaint: can't find referenced class java.awt.Graphics2D
Warning: gnu.kawa.models.WithPaint: can't find referenced class java.awt.Paint
Warning: gnu.kawa.models.WithPaint: can't find referenced class java.awt.geom.Rectangle2D
Warning: gnu.kawa.models.WithPaint: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.WithPaint: can't find referenced class java.awt.geom.AffineTransform
Warning: gnu.kawa.models.Spacer: can't find referenced class java.awt.geom.Dimension2D
Warning: gnu.kawa.models.Spacer: can't find referenced class java.awt.geom.Dimension2D
Warning: gnu.kawa.models.Spacer: can't find referenced class java.awt.Dimension
Warning: gnu.kawa.models.Spacer: can't find referenced class java.awt.Dimension
Warning: gnu.kawa.models.Spacer: can't find referenced class java.awt.geom.Dimension2D
Warning: gnu.kawa.models.Spacer: can't find referenced class java.awt.geom.Dimension2D
Warning: gnu.kawa.models.Spacer: can't find referenced class java.awt.geom.Dimension2D
Warning: gnu.kawa.models.Spacer: can't find referenced class java.awt.geom.Dimension2D
Warning: gnu.kawa.models.Spacer: can't find referenced class java.awt.geom.Dimension2D
Warning: gnu.kawa.models.Spacer: can't find referenced class java.awt.geom.Dimension2D
Warning: gnu.kawa.models.Spacer: can't find referenced class java.awt.geom.Dimension2D
Warning: gnu.kawa.models.Spacer: can't find referenced class java.awt.Dimension
Warning: gnu.kawa.models.Spacer: can't find referenced class java.awt.Dimension
Warning: gnu.kawa.models.Spacer: can't find referenced class java.awt.Dimension
Warning: gnu.kawa.models.Spacer: can't find referenced class java.awt.geom.Dimension2D
Warning: gnu.kawa.models.Spacer: can't find referenced class java.awt.geom.Dimension2D
Note: gnu.kawa.reflect.CompileBuildObject calls '(gnu.kawa.reflect.CompileBuildObject)Class.forName(variable).newInstance()'
Note: kawa.repl: can't find dynamically referenced class kawa.GuiConsole
Note: kawa.repl accesses a method 'console()' dynamically
      Maybe this is library method 'java.lang.System { java.io.Console console(); }'
Note: the configuration refers to the unknown class 'com.android.vending.licensing.ILicensingService'
Note: there were 1 references to unknown classes.
      You should check your configuration for typos.
Note: there were 1 unresolved dynamic references to classes or interfaces.
      You should check if you need to specify additional program jars.
Note: there were 1 class casts of dynamically created class instances.
      You might consider explicitly keeping the mentioned classes and/or
      their implementations (using '-keep').
Note: there were 1 accesses to class members by means of introspection.
      You should consider explicitly keeping the mentioned class members
      (using '-keep' or '-keepclassmembers').
Warning: there were 164 unresolved references to classes or interfaces.
         You may need to specify additional library jars (using '-libraryjars'),
         or perhaps the '-dontskipnonpubliclibraryclasses' option.
java.io.IOException: Please correct the above warnings first.
	at proguard.Initializer.execute(Unknown Source)
	at proguard.ProGuard.initialize(Unknown Source)
	at proguard.ProGuard.execute(Unknown Source)
	at proguard.ProGuard.main(Unknown Source)


More information about the Kawa mailing list