[
https://issues.apache.org/jira/browse/DERBY-4458?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13106989#comment-13106989
]
Chetan Narsude commented on DERBY-4458:
---------------------------------------
Is that all that is there to it? I wonder then why the target is enforced in
the build.xml files by mentioning target="1.4" to javac? Wouldn't it be
sufficient to leave target out from the source distribution and release derby
binaries with annotation of the target for which the binary is released?
Seeing 1.4 target made me wonder that there is version specific code that would
not compile/run without that version. I am trying to use the derbyclient.jar
recompiled by removing "1.4" references from build.xml, and using 1.6 compiler
on Android phone. Before I go too deep into it, I just want to make sure that I
am not overlooking something which may haunt me later.
-- Thanks.
> Dalvik / Andoid compatibility
> -----------------------------
>
> Key: DERBY-4458
> URL: https://issues.apache.org/jira/browse/DERBY-4458
> Project: Derby
> Issue Type: Improvement
> Components: Miscellaneous
> Affects Versions: 10.5.3.0
> Environment: dx 1.2 (from the Android SDK 2.0) running on Java 1.6
> Reporter: Thomas Görres
>
> derby.jar cannot be used on mobile devices running the Android OS. Android
> uses Dalvik as runtime environment, and the classfiles from derby.jar cannot
> be translated to Dalvik byte code.
> Steps to repeat:
> 1. get the Android SDK from http://developer.android.com
> 2. navigate to [android-sdk]/platforms/android-1.5/tools
> 3. execute ./dx --dex path/to/derby.jar
> The dx tool should convert the JRE byte code to Dalvik byte code. Instead, it
> spits out this warning several time:
> warning: Ignoring InnerClasses attribute for an anonymous inner class that
> doesn't come with an associated EnclosingMethod attribute. (This class was
> probably produced by a broken compiler.)
> Then it runs out of memory:
> java.lang.OutOfMemoryError: Java heap space
> at
> com.android.dx.rop.code.ThrowingInsn.withNewRegisters(ThrowingInsn.java:116)
> at com.android.dx.ssa.NormalSsaInsn.toRopInsn(NormalSsaInsn.java:122)
> at com.android.dx.ssa.back.SsaToRop.convertInsns(SsaToRop.java:386)
> at com.android.dx.ssa.back.SsaToRop.convertBasicBlock(SsaToRop.java:365)
> at
> com.android.dx.ssa.back.SsaToRop.convertBasicBlocks(SsaToRop.java:300)
> at com.android.dx.ssa.back.SsaToRop.convertToRop(SsaToRop.java:277)
> at com.android.dx.ssa.back.SsaToRop.convert(SsaToRop.java:118)
> at com.android.dx.ssa.back.SsaToRop.convertToRopMethod(SsaToRop.java:71)
> at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:103)
> at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:74)
> at
> com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:269)
> at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:131)
> at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:85)
> at com.android.dx.command.dexer.Main.processClass(Main.java:297)
> at com.android.dx.command.dexer.Main.processFileBytes(Main.java:276)
> at com.android.dx.command.dexer.Main.access$100(Main.java:56)
> at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:228)
> at
> com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:245)
> at
> com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:130)
> at
> com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:108)
> at com.android.dx.command.dexer.Main.processOne(Main.java:245)
> at com.android.dx.command.dexer.Main.processAllFiles(Main.java:183)
> at com.android.dx.command.dexer.Main.run(Main.java:139)
> at com.android.dx.command.dexer.Main.main(Main.java:120)
> at com.android.dx.command.Main.main(Main.java:87)
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira