jberkel / android-plugin

An sbt plugin for Android development in Scala
https://groups.google.com/forum/#!forum/scala-on-android
Other
476 stars 113 forks source link

Upgrade to ProGuard 4.8 #133

Closed rtyley closed 12 years ago

rtyley commented 12 years ago

ProGuard 4.8 is now in Maven Central, so this is fairly easy:

http://search.maven.org/#artifactdetails%7Cnet.sf.proguard%7Cproguard-base%7C4.8%7Cjar

Between ProGuard 4.7 and 4.8 there was a small change to the constructor of proguard.ConfigurationParser to allow updating 'external references' in file names ('<...>') with a supplied set of properties. I've supplied a blank Properties object here to get the code compiling.

DaveGit commented 12 years ago

Hi,

I local published 0.6.3-snapshot but my app still uses proguard 4.6 How do I get it to proguard 4.8? Do I have to set a version number somewhere?

rubenfiszel commented 12 years ago

Exactly same here and I need 4.8 to fix bugs...

rtyley commented 12 years ago

Random suggestion - try updating the version to some distinct id - eg 0.6.3.0.1 - and local-publish again, then reference that in your project - see if that helps.

rubenfiszel commented 12 years ago

How can I update to some distinct id ? I'm sorry but i'm quite bad with sbt, and I have no idea of what you're trying to do :D.

rtyley commented 12 years ago

Do a fresh clone of github.com/jberkel/android-plugin, then edit this line in

https://github.com/jberkel/android-plugin/blob/e3e177e8/build.sbt#L5

Just pick a version value that you haven't seen before - eg 0.6.3.0.1. Then local-publish.

rubenfiszel commented 12 years ago

It worked, thanx you.

jberkel commented 12 years ago

i'll try to release a new version with the new proguard soon.

DaveGit commented 12 years ago

Thanks, changing to 0.6.3.0.1 worked.

DaveGit commented 12 years ago

Hi, I decided to test the master trunk (i.e. with proguard 4.8) and jdk7 target jvm-1.7 (but also target jvm-1.6). sbt version was 0.12 and the task was android;package-debug During the reading of android.jar in the proguard process I got:

Caused by: java.lang.OutOfMemoryError: Java heap space
        at java.util.Arrays.copyOfRange(Arrays.java:2694)
        at java.lang.String.<init>(String.java:203)
        at java.lang.String.substring(String.java:1913)
        at proguard.classfile.util.DescriptorClassEnumeration.nextFluff(Descript
orClassEnumeration.java:162)

and

Caused by: java.lang.OutOfMemoryError: Java heap space
        at java.util.Arrays.copyOfRange(Arrays.java:2694)
        at java.lang.String.<init>(String.java:203)
        at proguard.classfile.constant.Utf8Constant.getStringRepresentation(Utf8
Constant.java:283)
        at proguard.classfile.constant.Utf8Constant.switchToStringRepresentation
(Utf8Constant.java:174)
        at proguard.classfile.constant.Utf8Constant.getString(Utf8Constant.java:
128)

(the stack trace is longer)

even with -Xmx1280M while using jdk6 I could use as little as -Xmx256M and that work flawlessly.

Any clues?