An Eclipse builder for Android projects using Scala

Overview

OBSOLETE

This is an Eclipse plugin for the obsolete Android Eclipse development system, and isn't relevant for modern Scala on Android.

OVERVIEW

AndroidProguardScala is an Eclipse plugin that speeds up the development process when you're using Scala on Android.

Scala + Android requires a Proguard run on every build. That's slow. The plugin watches code changes and avoids running Proguard if no significant changes have happened.

The plugin is intended for development-time only. You should continue to use Proguard with your own configuration for release builds.

NOTE: Your project must have Scala nature or the plugin will fail to run.

Upgrading to Scala 2.11

Make sure you install version 51 or later of this plugin.

Check the project properties for "AndroidProguardScala Properties" - make sure the new Scala libraries are checked if you're using them.

USING THE PLUGIN

  1. Install the Scala IDE from http://scala-ide.org/download/current.html.

  2. Point Eclipse to the update site at https://androidproguardscala.s3.amazonaws.com/UpdateSiteForAndroidProguardScala and install. Note that this isn't a link you can visit in a browser. Eclipse knows about the layout of files underneath that link, but you'll just get a 404 for the top level.

  3. Open an existing Android project, or create a new one.

  4. Add Scala nature to the project by right-clicking the project name.

  5. Right-click on your Android project and choose "Add AndroidProguardScala Nature."

  6. Open the properties for your project (right-click on the project name in the navigator, select properties from the menu) and choose "AndroidProguardScala Properties". Choose which jars in the classpath will be included in the minified jar. By default, the standard scala libraries will be included.

  7. After a build, notice that the directories 'proguard_cache' and 'proguard_cache_conf' are created.

proguard_cache contains the cached libraries and the files used to figure out which cached library to use (including whether or not a new library needs to be generated.

proguard_cache_conf contains the generated proguard configuration files. You should be able to use proguard_postprocessed.conf as a config file outside of this tool.

Managed dependencies

As long as your dependency resolution tool puts libraries on the classpath, this plugin can use them.

Ivy

I use IvyDE to manage dependencies in Eclipse. IvyDE puts dependencies in its own classpath container, so you can just mark them as input jars and they'll end up in scala-library.min.jar. Nothing to configure other than marking the jars correctly in the plugin preferences. See the sbt section for how to turn sbt dependencies into something that IvyDE can use.

sbt

sbt will generate ivy dependency files that can be read by IvyDE. Just run deliver-local in sbt and it'll build an ivy xml file in something like target/scala-2.10/ivy-0.4-SNAPSHOT.xml. Point IvyDE to that file and you'll end up with dependencies on your classpath that can be used by the plugin.

I don't actually use that ivy file though, since sbt can delete it. I copy target/scala-2.10/ivy-0.4-SNAPSHOT.xml into the project root and name it ivy.xml. It's an extra step (that can probably be automated inside sbt, but I've never bothered to learn how) but it avoids problems with the sbt build removing target/scala-2.10/ivy-0.4-SNAPSHOT.xml.

Maven

TBD. The problem with m2eclipse is that it takes over lots of the build process, so I never got it working nicely with AndroidProguardScala.

Troubleshooting

  • If you get a scala-library.min.jar, but it's empty, make sure you have a resonable set of libraries configured in the plugin properties. Right click on your project and select AndroidProguardScala properties. ("Reasonable" depends on what you're trying do do - just keep in mind that the plugin properties end up as settings in proguard_processed.conf.)

  • Look at the proguard_processed.conf file. Does it make sense? There should be -libraryjar lines for the standard Scala libraries that your project uses, and -keep lines for all of your own code.

  • Can you run proguard from a command line using the proguard_processed.conf file? That file is a normal proguard configuration and should work outside the plugin - there's nothing special or exotic about it.

On Linux and OSX, you should be able to run by doing something like this:

cd /My/project/directory
java -jar /Users/james/android-sdk-mac_86/tools.adt20/proguard/lib/proguard.jar @proguard_cache/proguard_processed.conf

Reporting bugs

If you've got a failing project, the very best thing for me is a tarball of the entire project, including all the built binaries. Yes, this is big, but most android projects will be less than a gigabyte.

The second-best thing is all of the source files minus the binaries. Definitely include all the files I need to bring this up as an Eclipse project.

The third-best is something like an sbt project where I can run 'sbt eclipse'. The problem with this is that sbt-eclipse doesn't always produce a working project, so I'm less likely to be able to take the time to get it working.

If you can't do that, a copy of the generated proguard config file is helpful, along with any errors you see in the Eclipse error log.

Release Notes

v51

Support for Scala 2.11

v50

  • Update to latest version of dependencies (Scala 2.10.2, Scalaz 7.0.2)
  • Better checking for Proguard errors

v49

Experimental attempt to join the Scala ecosystem

v48 (never released)

  • Fixed license files and xml
  • Build improvements for working in the Scala ecosystem

v47 (current release)

  • An Eclipse clean build now cleans the AndroidProguardScala cache
  • Added the plugin version number to the generated Proguard config file (should make tracking down bugs easier)
  • Write the name of the cached library to the Eclipse log on a build, don't just report a cache hit or miss

v46

v45

  • Improved build process to avoid issues with categorization

v44

Comments
  • Failed resolving interface 540 'Lscala/ScalaObject;'

    Failed resolving interface 540 'Lscala/ScalaObject;'

    I did everything exactly like mentioned in your README and I want to deploy a "Hello world" app on an Android device. With pure Java, no problem, with Scala nature and AndroidProguard Nature, I get the error

    dalvikvm: Failed resolving Lde/meintest/helloworld/MainActivity; interface 540 'Lscala/ScalaObject;'
    dalvikvm: Link of class 'Lde/meintest/helloworld/MainActivity;' failed
    AndroidRuntime: Shutting down VM
    [...]
    

    It seems that the ScalaObject is not included into the apk file? I only found this in MainActivity.smali

    .class public Lde/meintest/helloworld/MainActivity;
    .super Landroid/app/Activity;
    .source "MainActivity.scala"
    
    # interfaces
    .implements Lscala/ScalaObject;
    

    I found this topic on stackoverflow (Netbeans, but the same error): http://stackoverflow.com/questions/2626471/grafting-scala-2-8-into-a-netbeans-nbandroid-project-what-steps-am-i-missing with one possible solution:

    I had the same problem and finally found the solution:)
    
    In my case, I was not changing the value of property out.dex.input.absolute.dir (in SDK Tools r8) to jar file that was generated by Proguard. So, the ScalaObject interface was really not present in apk file.
    
    (I discovered that using great apktool.)
    

    So is this an AndroidProguardScala or Proguard problem?

    opened by ti-dev 29
  • Could not initialize class com.kenai.jaffl.struct.Constants

    Could not initialize class com.kenai.jaffl.struct.Constants

    Applicaiton Build return this error on every build Could not initialize class com.kenai.jaffl.struct.Constants

    Tried with eclipse Indigo and Juno , and with ScalaIde 2.0.2 and 2.1 M2

    opened by gigiigig 13
  • "type ScalaObject is not a member of package scala"

    Hi.

    Great work on this plugin, it's the first solution that actually seems to work somewhat for scala on android.

    However, I'm getting some errors from the presentation compiler like the one mentioned in the title, another that comes to mind is that object List does not have an apply method.

    I'm guessing that the presentation compiler sometimes uses scala-library.min and sometimes the full scala library or something like that? Seeing the same problem?

    opened by ickard 11
  • Scala library is not getting into the build

    Scala library is not getting into the build

    This seems to be #23 all over again.
    I'm an Android n00b and have created a HelloWorld project and followed the instructions for getting Scala support into my project.  As in #23, upon running, the ScalaObject class cannot be found by the classloader.  I'm not sure if this is a bug report or a clueless n00b report, but here's the evidence that I have:
    
    Proguard config file:
    $ cat proguard_cache/proguard_processed.conf 
    -injars "/home/eric/adt-bundle-linux-x86/eclipse/configuration/org.eclipse.osgi/bundles/347/1/.cp/lib/scala-library.jar"(!META-INF/MANIFEST.MF)
    -injars "/home/eric/adt-bundle-linux-x86/eclipse/configuration/org.eclipse.osgi/bundles/347/1/.cp/lib/scala-swing.jar"(!META-INF/MANIFEST.MF)
    -outjars "/home/eric/workspace/HelloWorld/proguard_cache/jartender_cache_7200869458962116516.jar"
    -injars "/home/eric/workspace/HelloWorld/bin/classes"
    -libraryjars "/home/eric/adt-bundle-linux-x86/sdk/platforms/android-17/android.jar"
    -libraryjars "/home/eric/workspace/HelloWorld/libs/android-support-v4.jar"
    -dontwarn
    -dontoptimize
    -dontobfuscate
    -dontskipnonpubliclibraryclasses
    -dontskipnonpubliclibraryclassmembers
    -ignorewarnings
    -forceprocessing
    -keep class com.ultracode.HelloWorld.R {*;}
    -keep class com.ultracode.HelloWorld.R$menu {*;}
    -keep class com.ultracode.HelloWorld.R$attr {*;}
    -keep class com.ultracode.HelloWorld.R$id {*;}
    -keep class com.ultracode.HelloWorld.R$string {*;}
    -keep class com.ultracode.HelloWorld.BuildConfig {*;}
    -keep class com.ultracode.HelloWorld.ScalaMainActivity {*;}
    -keep class com.ultracode.HelloWorld.R$drawable {*;}
    -keep class com.ultracode.HelloWorld.R$layout {*;}
    -keep class com.ultracode.HelloWorld.R$style {*;}
    =====
    
    Running Proguard outside of Eclipse:
    $ java -jar /home/eric/adt-bundle-linux-x86/sdk/tools/proguard/lib/proguard.jar @proguard_cache/proguard_processed.conf >/tmp/proguard.out
    
    $ more /tmp/proguard.out 
    ProGuard, version 4.7
    Reading program jar [/home/eric/adt-bundle-linux-x86/eclipse/configuration/org.eclipse.osgi/bundles/347/1/.cp/lib/scal
    a-library.jar] (filtered)
    Reading program jar [/home/eric/adt-bundle-linux-x86/eclipse/configuration/org.eclipse.osgi/bundles/347/1/.cp/lib/scal
    a-swing.jar] (filtered)
    Reading program directory [/home/eric/workspace/HelloWorld/bin/classes]
    Reading library jar [/home/eric/adt-bundle-linux-x86/sdk/platforms/android-17/android.jar]
    Reading library jar [/home/eric/workspace/HelloWorld/libs/android-support-v4.jar]
    Note: scala.xml.include.sax.Main$$anonfun$3 calls '(org.xml.sax.EntityResolver)Class.forName(variable).newInstance()'
    Note: scala.Enumeration accesses a field 'MODULE$' dynamically
          Maybe this is program field 'scala.Array$ { scala.Array$ MODULE$; }'
          Maybe this is program field 'scala.Boolean$ { scala.Boolean$ MODULE$; }'
          Maybe this is program field 'scala.Byte$ { scala.Byte$ MODULE$; }'
          Maybe this is program field 'scala.Cell$ { scala.Cell$ MODULE$; }'
          Maybe this is program field 'scala.Char$ { scala.Char$ MODULE$; }'
    [billions of entries like the above, then]
    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').
    Note: You're ignoring all warnings!
    Preparing output jar [/home/eric/workspace/HelloWorld/proguard_cache/jartender_cache_7200869458962116516.jar]
      Copying resources from program jar [/home/eric/adt-bundle-linux-x86/eclipse/configuration/org.eclipse.osgi/bundles/3
    47/1/.cp/lib/scala-library.jar] (filtered)
      Copying resources from program jar [/home/eric/adt-bundle-linux-x86/eclipse/configuration/org.eclipse.osgi/bundles/3
    47/1/.cp/lib/scala-swing.jar] (filtered)
    ==========
    
    After a build from eclipse:
    $ ls -l libs
    total 400
    -rw-r--r-- 1 eric eric 385685 Jan 22 18:44 android-support-v4.jar
    -rw-r--r-- 1 eric eric    285 Feb  5 14:39 scala_library.min.jar
    ==========
    
    $ jar tf ./proguard_cache/jartender_cache_7200869458962116516.jar 
    library.properties
    scala/swing/test/images/banana.jpg
    scala/swing/test/images/margarita1.jpg
    scala/swing/test/images/margarita2.jpg
    scala/swing/test/images/rose.jpg
    ==========
    
    Finally, the logcat output when trying to run the app:
    02-05 22:50:37.227: W/Trace(602): Unexpected value from nativeGetEnabledTags: 0
    02-05 22:50:37.227: I/dalvikvm(602): Failed resolving Lcom/ultracode/HelloWorld/ScalaMainActivity; interface 540 'Lscala/ScalaObject;'
    02-05 22:50:37.247: W/dalvikvm(602): Link of class 'Lcom/ultracode/HelloWorld/ScalaMainActivity;' failed
    02-05 22:50:37.267: D/AndroidRuntime(602): Shutting down VM
    02-05 22:50:37.327: E/AndroidRuntime(602): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.ultracode.HelloWorld/com.ultracode.HelloWorld.ScalaMainActivity}: java.lang.ClassNotFoundException: Didn't find class "com.ultracode.HelloWorld.ScalaMainActivity" on path: /data/app/com.ultracode.HelloWorld-2.apk
    ===========
    
    The "ScalaMainActivity" class file IS being generated.  Am I doing something wrong, or does there appear to be a problem here?
    
    opened by Nexus6 9
  • Error running builder 'Android Proguard Scala Builder'

    Error running builder 'Android Proguard Scala Builder'

    When compiling the basic scala-android project (as shown on the Scala IDE tutorial) Eclipse throws the following error

    Errors running builder 'Android Proguard Scala Builder' on project 'HelloScala'.

    Eclipse stack trace:

    org.jruby.exceptions.RaiseException: (TypeError) can't convert nil into String at org.jruby.RubyFile.unlink(org/jruby/RubyFile.java:1785) at ProguardCacheRuby.install_proguard_output(classpath:/./proguard_cache.rb:61) at ProguardCacheJavaInterop.install_proguard_output(src/main/jruby/proguard_cache_java_interop.rb:20)

    • Added Scala nature and Android ProGuard nature
    • Im still able to run the app, but it doesn't found the main activity class
    opened by ateston 8
  • Support for scala 2.11

    Support for scala 2.11

    After upgrading my eclipse environment to use Scala IDE 3.0.4 build against scala 2.11 I'm no longer able to install AndroidProguardScala via the update site. It just tells me that: 'Software being installed: Android/Proguard/Scala Feature 0.0.50 (com.restphone.androidproguardscala.feature.feature.group 0.0.50) Missing requirement: AndroidProguardScala - a builder for speeding up builds of Scala for Android 0.0.50 (com.restphone.androidproguardscala 0.0.50) requires 'bundle org.scala-ide.scala.library 0.0.0' but it could not be found Cannot satisfy dependency: From: Android/Proguard/Scala Feature 0.0.50 (com.restphone.androidproguardscala.feature.feature.group 0.0.50) To: com.restphone.androidproguardscala [0.0.50]'

    I'm aware that there is a lot of discussion if Android developers should adopt scala 2.11, but nonetheless it would be nice to have at least the possibility to try ;-)

    Best regards, Andreas

    opened by alaendle 7
  • android test projects?

    android test projects?

    Is AndroidProguardScala known to work with Android test projects?

    Because I can't get it to work. :) When I try to launch the tests, the launch fails and logcat has:

    E/AndroidRuntime(1470): java.lang.NoClassDefFoundError: scala/reflect/ScalaSignature

    I do get a scala_library.min.jar, but it doesn't contain any classes. just library.properties.

    If you care to look, I've created a git repo:

    https://github.com/jimfulton/AndroidProguardScala-test-projects-example

    with 3 projects:

    hi A scala android hello world app

    hiTests An attempt at an android test project written in scala, which doesn't launch

    hiTestsJava An android test project written in Java that launches and runs just fine.

    Am I doing something wrong?

    opened by jimfulton 7
  • Eclipse not picking up the generated library

    Eclipse not picking up the generated library

    If I'm not mistaken, the Android build should use libs/scala_library.min.jar, right?

    In my case, Eclipse detects it, AndroidProguardScala generates it correctly (as far as I could tell), but the Dex compiler doesn't pick it up. I tried cleaning the project and restarting Eclipse multiple times ; sometimes (rarely) it worked, but I wasn't able to identify what I did exactly.

    Any idea about what I am doing wrong?

    opened by fxthomas 4
  • Add note to readme about needing scala nature + this plugin (was Scala Libraries not included, Cannot add Scala Nature)

    Add note to readme about needing scala nature + this plugin (was Scala Libraries not included, Cannot add Scala Nature)

    I followed the Instructions in the README and successfully installed the plugin. Then, I created a new Android Project 'ScalaTest' and successfully added the AndroidProguardScala Nature to it.

    The README reads: "Choose which jars in the classpath will be included in the minified jar. By default, the standard scala libraries will be included." But these libraries are not added to the Android Project: Bildschirmfoto 2013-01-25 um 07 59 52 Bildschirmfoto 2013-01-25 um 08 00 32

    Moreover I cannot add the Scala Nature to it (no menu entry). Which may be another problem. Bildschirmfoto 2013-01-25 um 08 01 38

    The result is that I cannot add Scala classes to the project. The "Create a new Scala Class" wizard reports that "ScalaTest is not a Scala project" and refuses to add the class: Bildschirmfoto 2013-01-25 um 07 58 51

    opened by jannvck 4
  • Proguard Created jar interferes with Content Assist

    Proguard Created jar interferes with Content Assist

    The scala_library.min.jar created by ProGuard breaks the Content Assist. It only shows templates in the menu.

    Changing the order of the libraries on the build path seems to solve this issue.

    opened by Governa 3
  • ant?

    ant?

    I realize that this is a bit OT, but can you give any tips on how to apply the proguard transformation from ant?

    Developing in Eclipse is great, but I also need to be able to do CI, and afaict, I need the command-line tools to do that, thus ant.

    You say: "The plugin is intended for development-time only. You should continue to use Proguard with your own configuration for release builds."

    Can you give any hints what our own configuration should be?

    I've tried (as a test) just copying the scala library to my project libs directory and enabling proguard. I get lots of unresolved references. I then tried copying the rest of the scala libraries and got lots more. So, obviously, I'm doing this wrong.

    opened by jimfulton 3
  • Bump junit from 4.10 to 4.13.1 in /com.restphone.androidproguardscala.parent

    Bump junit from 4.10 to 4.13.1 in /com.restphone.androidproguardscala.parent

    Bumps junit from 4.10 to 4.13.1.

    Release notes

    Sourced from junit's releases.

    JUnit 4.13.1

    Please refer to the release notes for details.

    JUnit 4.13

    Please refer to the release notes for details.

    JUnit 4.13 RC 2

    Please refer to the release notes for details.

    JUnit 4.13 RC 1

    Please refer to the release notes for details.

    JUnit 4.13 Beta 3

    Please refer to the release notes for details.

    JUnit 4.13 Beta 2

    Please refer to the release notes for details.

    JUnit 4.13 Beta 1

    Please refer to the release notes for details.

    JUnit 4.12

    Please refer to the release notes for details.

    JUnit 4.12 Beta 3

    Please refer to the release notes for details.

    JUnit 4.12 Beta 2

    No release notes provided.

    JUnit 4.12 Beta 1

    No release notes provided.

    JUnit 4.11

    No release notes provided.

    Commits
    • 1b683f4 [maven-release-plugin] prepare release r4.13.1
    • ce6ce3a Draft 4.13.1 release notes
    • c29dd82 Change version to 4.13.1-SNAPSHOT
    • 1d17486 Add a link to assertThrows in exception testing
    • 543905d Use separate line for annotation in Javadoc
    • 510e906 Add sub headlines to class Javadoc
    • 610155b Merge pull request from GHSA-269g-pwp5-87pp
    • b6cfd1e Explicitly wrap float parameter for consistency (#1671)
    • a5d205c Fix GitHub link in FAQ (#1672)
    • 3a5c6b4 Deprecated since jdk9 replacing constructor instance of Double and Float (#1660)
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 0
  • After adding APS , Initial clean causes an error

    After adding APS , Initial clean causes an error

    Using Eclipse, I was just trying to augment an existing purely Java Android app by adding a simple Scala class that would provide some functionality.

    1. I clicked on the project to "Add AndroidProguardScala Nature" .
    2. Immediately afterwards, I wanted to issue a "clean" to make sure I was starting at a good state and I received this error

    Errors occurred during the build. Errors running builder 'Android Proguard Scala Builder' on project 'com.SerialTest.SerialTestActivity'. java.lang.NullPointerException

    I've tried this with several programs that I had written as well as some samples from the book Android Wireless Application Development Volume I

    opened by accesio 1
  • Use the new scala debugger

    Use the new scala debugger

    The new scala debugger helps to go through the code very easily: http://scala-ide.org/docs/current-user-doc/features/scaladebugger/index.html

    Could you activate it for your awesome plug-in AndroidProguardScala ? It currently works only for scala-only projects, so I guess it needs to be manually added.

    Here is how they add their new debugger: https://github.com/scala-ide/scala-ide/blob/eb61d7f4130cd1e0da95b6094abd70b68323f5dd/org.scala-ide.sdt.debug/plugin.xml

    Thank you for your amazing work.

    opened by MikaelMayer 1
  • StringBuilder

    StringBuilder

    I get a java.lang.NoClassDefFoundError: scala.collection.mutable.StringBuilder

    based on a straightforward ....

    val textViewCounter = findViewById(R.id.textViewCounter).asInstanceOf[TextView] textViewCounter.setText("This app has been started " + counter + " times.");

    I am running Eclipse Juno + Scala 2.10.1 + Android 4.1.2 + AndroidProguardScala 47.2...

    I have tried adding the following to proguard_cache_conf/proguard_additions.conf...

    -keep class scala.collection.mutable.StringBuilder { *; }

    Any ideas?

    opened by tculshaw 5
  • Not catching a proguard error with duplicate libraries

    Not catching a proguard error with duplicate libraries

    Warning: can't write resource [reflect.properties](Duplicate zip entry [scala-reflect-2.10.1.jar:reflect.properties]) Error: Can't write [C:\Users\james\workspace\AkkaProducerConsumerBenchmarks\proguard_cache\jartender_cache_3033257530503124243.jar](Can't read [C:Usersjames.ivy2cacheorg.scala-langscala-reflectjarsscala-reflect-2.10.1.jar%28;;;;!META-INF/MANIFEST.MF%29] %28Duplicate zip entry [scala-reflect-2.10.1.jar:scala/reflect/api/Annotations$ArrayArgumentExtractor.class]%29)

    opened by banshee 0
Owner
James Moore
James Moore
Android for Maven Eclipse

#Android for Maven Eclipse Copyright (c) 2009, 2010, 2011, 2012, 2013, 2014, 2015 Ricardo Gladwell, Hugo Josefson, Anthony Dannane, Mykola Nikishov, R

Ricardo Gladwell 338 Nov 25, 2022
An easy-to-use sbt plugin for working with all Android projects

Build Android Projects Using SBT http://scala-android.org/ Change log | FAQ Auto-import from gradle using sbt-android-gradle NOTE: 1.6.0 is the last v

Scala on Android 749 Nov 20, 2022
A Gradle Plugin that removes unused resources in Android projects.

#Lint Cleaner Plugin Removes unused resources reported by Android lint including strings, colors and dimensions. Depracated As of Android Studio 2.0+

Marco RS 705 Nov 25, 2022
A Leiningen plugin for building Clojure/Android projects

lein-droid A Leiningen plugin to simplify Clojure development for Android platform. It acts as a build-tool for Clojure/Android projects. Usage First

Clojure/Android 643 Dec 15, 2022
Export BlueJ project archives from Gradle projects.

bluej-jar Gradle Plugin This is a Gradle plugin for producing JAR files which are valid BlueJ project archives. This plugin only works in Java project

KCL UG 5 Apr 7, 2022
Development environment for methodic projects

Methodic Super Project Get started developing faster! This superproject helps you get started building on the Methodic platform by providing a single

null 1 Mar 24, 2022
Jetbrains plugin for differentiating opened projects by color!

?? ?? Project-Color ?? ?? Remember your projects by color! Colorize the title bar to differentiate your open projects. Working on multiple projects si

yon 25 Dec 16, 2022
Add a different ribbon to each of your Android app variants using this gradle plugin. Of course, configure it as you will

Easylauncher gradle plugin for Android Modify the launcher icon of each of your app-variants using simple gradle rules. Add ribbons of any color, over

Mikel 960 Dec 18, 2022
This plugin helps tp build GraphQL applications in Java using the DGS framework

dgs-intellij-plugin This plugin helps tp build GraphQL applications in Java using the DGS framework. The DGS Framework is open sourced by Netflix and

Netflix, Inc. 16 Nov 3, 2022
NukeJangala - Starsector Mod Template using Gradle and IntelliJ

Starsector Mod Template using Gradle and IntelliJ v1.2.0 Description This is a t

Candy  0 Jan 4, 2022
NukePlanet - Starsector Mod Template using Gradle and IntelliJ

Starsector Mod Template using Gradle and IntelliJ v1.2.0 Description This is a t

Candy  0 Apr 17, 2022
OTH themes for JetBrains. Dark and light themes using Open Template Hub's color palette.

Open Template Hub - IntelliJ Platform Theme v1 OTH themes for JetBrains. Dark and light themes using Open Template Hub's color palette. After installi

Open Template Hub 5 Dec 18, 2022
OTH themes for JetBrains. Dark and light themes using Open Template Hub's color palette.

Open Template Hub - IntelliJ Theme Plugin v1 OTH themes for JetBrains. Dark and light themes using Open Template Hub's color palette. After installing

Open Template Hub 2 Apr 21, 2022
A plugin for Android Studio and Intellij IDEA that speeds up your day to day android development.

ADB Idea A plugin for Android Studio and Intellij IDEA that speeds up your day to day android development. The following commands are provided: Uninst

Philippe Breault 2k Dec 28, 2022
IntelliJ / Android Studio plugin for Android Holo Colors

This project is not maintained anymore. Holo Colors doesn't make sense since the introduction of Material Design and the ability to set the primary co

Jérôme Van Der Linden 644 Nov 10, 2022
[Deprecated] Android Studio IDE support for Android gradle unit tests. Prepared for Robolectric.

#[Deprecated] Google has finally released a proper solution for unit testing. Therefore this plugin will no longer be activlty maintained. android-stu

Evan Tatarka 236 Dec 30, 2022
ADB WIFI Android Studio plugin for debug android app over Wi-Fi.

ADB WIFI ADB WIFI Android Studio plugin for debug android app over Wi-Fi. How to install in Android Studio: go to Preferences

Sutachad Wichai 298 Jan 3, 2023
Android Studio plug-in for generating ButterKnife injections from selected layout XML.

ButterKnifeZelezny Simple plug-in for Android Studio/IDEA that allows one-click creation of Butterknife view injections. How to install in Android Stu

Avast 3.4k Dec 14, 2022