I would like to skip Proguard to accelerate the debug cycle.
I've try setting useProguard in Android := false in build.scala,
but after that, cleaned, recompiled the project, the program crashes (force close) on run.
useProguard in Android := false
proguard is required to run on unmodified devices/emulators at the moment - need to update the docs.
andyli you may modify emulator if you wish. I run and debug my code with useProguard in Android := false. There are 2things that you need:
1. predex and preload appropriate libraries. For this you may use my fork, look at pull request "add ability to predex external libraries"
2. modify your AndroidManifest.xml and add tag
example of such manifest you may view at https://github.com/ezh/android-component-DigiSSHD/blob/master/AndroidManifest.xml.
I must note that without it development process have a huge slowdown. Because I use AspectJ as AOP for alter scala code that add more compilation time than ever. Without "useProguard in Android := false" development is pain
If you have any questions PM me
Sounds very nice.
Long build time is indeed a major issue for me to develop Android app using Scala...
I will have a look to it and hope it will be merged soon.
@andyli have a look at #116 as well. It won't help with proguard on your app, like @ezh's predex/preload option, but it does at least skip proguard on your test project.
Maybe I misunderstand something. I suspect, that @andyli discribe situation when installed application throw ClassNotFoundException or something like that (I saw it long time ago) because proguard skipped. There isn't scala runtime libraries at emulator by default and program crashed. It is default behavior. Just load all libraries to emulator. Or he point to other problem?
By the way, my copy paste incremental build process:
with android libraries (overloading default aapt process to avoid id duplication)
with aspectj weaving
with png crunching
without build native code
Generated 99 files
Included 0 files from jar/zip files.
Checking for deleted files
[info] Packaging /home/ezh/0projectsAndroid/android-DigiINETD.private/source/bin/digiINETD.apk
[success] Total time: 18 s, completed 09.02.2012 19:06:07
3994 KB/s (823125 bytes in 0.201s)
[success] Total time: 4 s, completed 09.02.2012 19:06:11
I think, that it is a very nice time for such amount of build work. Please, note size - only 823125 without proguard. All stable libraries already at emulator. I think this is what @andyli want - something like that
@ezh I think you understood @andyli correctly. If he's looking to get rid of some proguard time, there are at least two options: 1) use your predex/preload method, so proguard isn't needed at all; 2) use my patch, so that proguard isn't needed on the test project (but will still be needed on the main project). Yours is the better solution, but mine requires a little less work. I'm planning to try your branch myself soon.
@loganj test is important part, you are right. if you have any thoughts about my fork - feel free to ask. Prepare emulator for uploading is all-sufficient task.
@ezh I was simply using a unmodified emulatord the proguard skipped app crashed.
@loganj Thanks for your response, but I would like to skip proguard in the main project too.
Btw, it would be much nicer if there is a command in sbt that do all those predex/preload job.
eg. something like: