JRebel for Android

Compatible with: IntelliJ IDEA Android Studio
83 458

JRebel for Android accelerates the development of Android-based applications. It eliminates the time-consuming full build, install and run cycle. Save hundreds of hours of development time per year.
Plugin installation includes JRebel for Android Free and JRebel for Android Enterprise.

Download plugin

Recent change notes

2.3.4 (July 25, 2017)

  • Fixed a critical issue manifesting in "IllegalStateException: Another commit has been applied during this transaction" introduced in 2.3.2

2.3.2 (July 21, 2017)

  • Improved handling for "Package manager has died"
  • Fixed a case where AAPT2 would generate invalid Manifest.java file
  • Fixed a case where forking a new ZipAlign process could take minutes
  • Fixed a case where failed Apply Changes did not roll back fully and caused all following Apply changes to crash
  • Fixed "Cannot reload after we have received Android resources for a restart"
  • Fixed a NullPointerException when Apply changes and app crash happen at the same time

2.3.0 (July 12, 2017)

  • JRebel for Android now includes a custom version of AAPT2 to enable incremental resource packaging. This reduces time spent on applying changes to Android resources.
  • Added support for Gradle Android plugin 3.0.0-alpha6
  • Fixed handling an Android OS upgrade
  • Fixed sometimes getting LinkageError: Method overrides final method in class
  • Fixed starting application while showing a system alert dialog
  • Fixed handling ClassLoader.findClass() correctly
  • Fixed sometimes showing "No enum constant" messages in logcat

2.2.46 (July 6, 2017)

  • Fixed reloading methods with Hugo @DebugLog annotations
  • Fixed a case where a temporary unresponsive ADB connection would lead to not being able to run with JRebel for Android
  • Fixed debugger view sometimes not showing method arguments in local variables view
  • ObjectAnimator target classes API modifications are now always reflected with Apply Changes
  • Fixed handling "IOException: No space left on device"

2.2.44 (June 29, 2017)

  • Added cleanup for JRebel For Android's build cache
  • Fixed VerifyError on Kitkat or older when compileSdkVersion was 26
  • Fixed handling "Transaction timed out. Did your computer go to sleep?"
  • Fixed "IDE did not find any running instances of JRebel for Android" after pressing Apply Changes
  • Fixed "SecurityException: Not allowed to start activity Intent" on Android 4.4
  • Fixed "Unable to open DEX file during optimize"
  • Fixed Dexer simulation exception for some static synchronized methods

2.2.42 (June 27, 2017)

  • Fixed the IDE stop button remaining active after stopping JRebel for Android on Android Studio 2.4 or later
  • Fixed "IllegalStateException: no input set" during apply changes
  • Fixed large runtime performance overhead for classes with static synchronized methods
  • Fixed handling Unicode characters in @id resource names
  • Fixed starting the app on some Xiaomi MIUI devices
  • Fixed JRebel for Android ignoring install flags set in the IDE
  • Fixed a rare "IllegalStateException: Expected current transaction Id" race when starting JRebel for Android
  • Fixed "ZipException: duplicate entry" Gradle build failures for Kotlin projects with Android Gradle Plugin 3.0.0-alpha

2.2.40 (June 15, 2017)

  • Fixed IllegalStateException: Service with id xxxx does not exist
  • Fixed initial startup being really slow when the Firebase Performance Monitoring plugin was applied
  • Fixed a race condition where an apply changes right after project setup change could result in "No changes detected"
  • Fixed handling resource names with non-latin1 unicode characters (experimental)
  • Fixed erroneously allowing dimension resources that are missing a unit (experimental)

2.2.38 (June 14, 2017)

  • Added support for Gradle Android plugin 3.0.0-alpha3
  • Added support for certain host proxy settings
  • Fixed getting VerifiyError after reloading some constructors with Kotlin
  • Fixed starting application when the persistent debug flag was set
  • Fixed a rare NullPointerException when doing apply changes

2.2.36 (June 13, 2017)

  • Added support for the latest developer preview of Android O (API 26)
  • Added incremental compilation support for PocketKnife and Lifecycle (Android Architecture Components)
  • Fixed attaching the debugger to a long-running process
  • Fixed an issue where the JRebel for Android run buttons were disabled
  • Fixed a case where the build would get stuck on startup
  • Fixed generating sources for annotation processors on incremental builds with -proc:none
  • Fixed handling a case when attempting to apply invalid manifest changes
  • Fixed handling SecurityException when starting an activity
  • Fixed still showing splash screen after application has started in some cases

2.2.34 (June 5, 2017)

  • Added support for Android Studio 3.0 Canary 3

2.2.32 (June 5, 2017)

  • Added incremental compilation support for Esperandro and Ollie
  • Fixed a startup performance issue on Android O where a white screen would be shown too long
  • Fixed parsing format=integer value resources with trailing whitespace (experimental)

2.2.30 (May 31, 2017)

  • Added incremental Java compiler support for the new Android-specific annotations introduced in Dagger 2.11
  • Added support for AutoParcel annotation processor
  • Added support for Android Gradle plugin 2.4.0-alpha versions
  • Fixed ClassNotFoundException being thrown for Parcelable classes during startup
  • Fixed a case where WebView would not see methods annotated with @JavascriptInterface
  • Fixed Apply Changes failing while project sync in progress
  • Fixed dexer failing with EXCEPTION FROM SIMULATION surfaced by BlockCanaryEx library
  • Fixed build failure when class files are deleted from build directory
  • Fixed "Cannot Run with JRA: Could not detect a launch activity" when the main activity is referenced through an alias

2.2.28 (May 18, 2017)

  • Improved user experience with applying changes that require restarting the application
  • Fixed APK already in use by other process
  • Fixed an issue with Lineage OS devices
  • Fixed getting ANR on startup with certain applications
  • Fixed IDE progress bar indicating applying changes in certain cases after resource change has already been applied

2.2.26 (May 12, 2017)

  • Fixed a regression introduced in 2.2.24 with running JRebel for Android with debugger

2.2.24 (May 12, 2017)

  • Improved messaging when the host computer was running out of space
  • Improved handling corrupt data on the device due to unexpected process termination / power loss
  • Changing only versionCode or versionName in AndroidManifest.xml no longer triggers APK reinstallation
  • Fixed IDE not respecting the selected Build Variant in some cases
  • Fixed a case where Gradle builds would always fail after canceling a build during Java compilation
  • Fixed handling duplicate classpath resources
  • Fixed reporting dexer failures due to system (java. and javax.) packages
  • Fixed IllegalStateException: Service with id XYZ does not exist
  • Fixed TimeoutException: android.view.ThreadedRenderer.finalize() timed out after 10 seconds
  • Fixed handling non-@style parents for styles in the incremental resource compiler (experimental)
  • Fixed handling multiple configuration definitions for the same declare-styleable resource (experimental)

2.2.22 (May 5, 2017)

  • Fixed startup failure when Jacoco is configured for a library project
  • Fixed NoSuchMethodError: No virtual method __jr_get__
  • Fixed Failure [INSTALL_FAILED_INVALID_APK] due to having android:extractNativeLibs="false" in the manifest
  • Fixed incremental resource compiler not failing on stray single quotes in strings (experimental)
  • Fixed resource processing error messages pointing to the merged resource folder instead of the source folder (experimental)
  • Reduced incremental resource compiler error message verbosity (experimental)

2.2.20 (April 28, 2017)

  • Fixed breakpoints in inner classes not being hit before an Apply changes
  • Fixed JRebel for Android startup failing with "ZipException: invalid LOC header (bad signature)" in rare cases
  • Fixed "IllegalAccessError: implementing interface method is not public"
  • Fixed "IllegalStateException: Application has been uninstalled while we were starting it"

2.2.18 (April 27, 2017)

  • Added support for the new Java 8 Desugar transform in Android Gradle Plugin 2.4.0
  • Added fallback to Gradle wrapper if local Gradle path was misconfigured
  • Fixed breakpoints not being hit in reloaded constructors
  • Fixed Class ID not found for java/lang/Object
  • Fixed "Expected current transaction Id XYZ but there's no open transaction"
  • Fixed "Failed to find constructor entry" during startup

2.2.14 (April 25, 2017)

  • Minimum supported IDE version is now Android Studio 2.2/IntelliJ IDEA 2016.1
  • Fixed IllegalStateException: Could not kill the runtime agent
  • Fixed JRebel for Android crashing after upgrading in certain cases
  • Fixed IllegalStateException: Expected current transaction Id xx-xx-xx-xx but there's no open transaction
  • Fixed NoSuchFileException: .../res-classpath.zip

2.2.12 (April 20, 2017)

  • Fixed still using old code after certain changes
  • Fixed "IllegalArgumentException: Cannot reload after we have received Android resources for restart"
  • Fixed "UnsupportedLaunchException: LatestResourcesButOldClasses"
  • Fixed getting timeouts with ADB over TCP
  • Fixed crashing due to a broken file state on startup

2.2.10 (April 18, 2017)

  • Fixed "NetworkTargetException: /start failed" for multiprocess apps
  • Fixed "IllegalStateException: Agent has no class path resources and we have nothing to send"
  • Fixed "UnsupportedLaunchException: ConcurrentTransaction"

2.2.8 (April 13, 2017)

  • Improved stability of launching application without being connected to the IDE
  • Fixed IllegalStateException: Classes should be trimmed first

2.2.6 (April 11, 2017)

  • Fixed Expected current transaction Id but got null

2.2.2 (April 11, 2017)

  • Improved activation and license related UI/UX
  • Fixed IllegalStateException: Another commit has been applied during this transaction

2.2.0 (April 4, 2017)

  • We've made changes to JRebel for Android licensing:
  • Merged Business and Individual licenses into a single JRebel for Android Enterprise license
  • All users are now eligible for a new 14-day JRebel for Android Enterprise trial
  • Introduced JRebel for Android Free
  • Read more about licensing changes here
  • Added support for ZeroTurnaround License Server 3.3 or later
  • Revamped activation and license related UI
  • Support launching application without being connected to the IDE

2.1.18 (March 28, 2017)

  • Fixed a file handle leak on Windows preventing IDE plugin upgrades from 2.1.16. Workaround: stop all Gradle daemons before upgrading.
  • Fixed handling annotations in named inner classes during incremental compilation
  • Fixed an issue with converting remote library module to in-tree module
  • Fixed an issue with "Another commit has been applied during this transaction"
  • Fixed a TransactionTooLargeException
  • Fixed starting up after system image upgrade on device/emulator
  • Fixed an issue in the incremental compiler where gradle build succeeded after removing a library while app code still referenced missing types
  • Fixed a stackoverflow after 'Apply changes' for some nested kotlin classes

2.1.16 (March 21, 2017)

  • Fixed cases where apply changes did not work for some named inner classes
  • Fixed StackOverflowError when changing Kotlin inner classes
  • Fixed an issue where the incremental compiler used stale generated ButterKnife sources

2.1.14 (March 15, 2017)

  • Added support for Android Gradle plugin 2.4.0-alpha1
  • Fixed resource changes not being visible in services
  • Fixed Java compile classpath order when using the incremental Java compiler
  • Fixed "No class bundles found or created yet."
  • Fixed "ZipException: error in opening zip file"
  • Fixed socket timeout errors when the machine was under heavy CPU contention

2.1.12 (March 13, 2017)

  • Support launching application without being connected to Studio (experimental flag)
  • Fixed using JRebel for Android plugin with Studio running on Java 6
  • Fixed re-adding previously removed fields
  • Fixed handling corrupt state after an emulator was killed
  • Fixed handling StackOverflowError
  • Fixed handling no space left on device

2.1.10 (March 7, 2017)

  • Fixed issue with compile-time constant changes not being picked after gradle build failures
  • Fixed JRebel for Android companion app being debuggable and showing up in IDE dialogs
  • Fixed issue where clearing companion app data results in a crash

2.1.8 (March 2, 2017)

  • Fixed class names and line numbers in log messages emitted by the Timber library
  • Fixed AgentNoSpaceLeftOnDeviceException when starting with a device low on storage space

2.1.6 (February 22, 2017)

  • DBFlow annotation processor is now supported by the incremental Java compiler
  • Improved startup times by using multiple dexer threads
  • Fixed cases where startup would fail with "ClassId not yet created"

2.1.4 (February 20, 2017)

  • Fixed an incremental compiler issue where Dagger 2 did not re-generate components correctly
  • Fixed lock verification failed for some classes causing classes to run in interpreted mode on API 24+
  • Fixed an issue with "Cannot merge bundle as we don't have installed APK yet."
  • Fixed "Timeout reached while waiting for the runtime agent startup to finish."
  • Fixed an IDE plugin crash when pressing cancel from the uninstall confirmation dialog
  • Fixed gradle builds failing when using kapt 1
  • StorIO and Requery annotation processors are now supported by the incremental compiler

2.1.2 (February 9, 2017)

  • Improved incremental compiler stability with Dagger 1 annotation processor
  • Improved the performance of JRebel for Android when switching between devices
  • Fixed JRebel for Android crashing when the manifest is invalid
  • Fixed IllegalStateException: Unexpected start type Unsupported (LatestResourcesButOldClasses)
  • Fixed JRebel for Android leaking files on device

2.1.0 (February 8, 2017)

  • LoganSquare annotation processor is now supported by the incremental compiler
  • Fixed a lambda class issue with Retrolambda
  • Fixed handling apply changes after project is cleaned
  • Fixed IllegalStateException: failed to find constructor entry
  • Fixed IllegalArgumentException: Missing error info
  • Fixed TimeoutException on startup if application was just being restarted

Notable changes since JRebel for Android 2.0.0:

  • Library dex files are now cached externally to the project. This improves startup times after cleaning project.
  • Improved JRebel for Android startup performance after clearing data
  • Improved user experience for cases where JRebel for Android needs to restart the app
  • Improved incremental compiler performance when using multiple annotation processors

2.0.44 (February 1, 2017)

  • Improved JRebel for Android startup performance after clearing data
  • Improved user experience for cases where JRebel for Android needs to restart the app
  • JRebel for Android now asks for confirmation if app uninstall is required
  • FragmentArgs, ActivityRouter, AutoFactory, MPermissions and RoboGuice annotation processors are now supported by the incremental compiler

2.0.42 (January 24, 2017)

  • Added support for the PermissionsDispatcher annotation processor in the incremental compiler
  • Added a workaround for a dex2oat issue on Xiaomi devices that resulted in JRebel for Android being unable to start
  • Fixed "No agent available" IllegalStateException when applying changes (experimental flag)
  • Fixed Gradle builds failing if Lombok was used in the project

2.0.40 (January 18, 2017)

  • Fixed IllegalStateException: No agent crashed yet (experimental flag)

2.0.38 (January 16, 2017)

  • Fixed Apply Changes failing for projects using AutoValue

2.0.36 (January 11, 2017)

  • Improved incremental compiler performance when using multiple annotation processors
  • Fixed a case where a failing Gradle build caused all subsequent builds to fail
  • Fixed handling getGenericParameterTypes() after reloading a class
  • Fixed NPE when accessing new elements via DataBinding

2.0.34 (January 9, 2017)

  • Fixed build failures with Dagger 2 when adding new @Inject constructor arguments
  • Fixed Databinding build failures when using matching Android Studio and Android Gradle plugin versions
  • Fixed "beforeNewApplication() was already called"
  • Fixed "Cannot run program wmic"

2.0.32 (December 30, 2016)

  • Added runtime support for making changes to Moshi POJOs
  • Fixed applying changes to classpath resources from subprojects
  • Fixed a crash with Intent.createChooser on API 19 or older
  • Fixed handling generic return type changes in Retrofit interfaces

2.0.30 (December 21, 2016)

  • JRebel for Android now stores internal files on the device under a separate companion app. This improves startup performance after clearing data (experimental flag only)
  • Library dex files are now cached externally to the project. This improves startup times after cleaning project (experimental flag only)
  • Added support for Android Annotations processor in the incremental compiler
  • Fixed a Gradle build failure if the project had dangling semicolons after import statements
  • Fixed Gradle builds failing with "No dex files to merge" if one Android app module depended on building another Android app module
  • Fixed a crash during startup if the launch activity had the NoDisplay theme

2.0.28 (December 15, 2016)

  • Added support for Android Gradle plugin 2.3.0-alpha3
  • Added incremental compilation support for projects using AutoService

2.0.26 (December 13, 2016)

  • Hotfix: Fixed NoSuchMethodError when starting up with JRebel for Android (introduced in 2.0.24)

2.0.24 (December 13, 2016)

  • Added support for Android Studio 2.3 Canary 3
  • Improved incremental compilation stability for Dagger 2
  • Fixed an issue where installing a huge app timeouts
  • Fixed Gradle build failure: "Cannot set property 'jrebelVersion' on null object"

2.0.22 (December 6, 2016)

  • Improved support for Realm 2 in the incremental Java compiler
  • Improved handling of Data Binding in the incremental compiler for multi-module projects
  • Fixed a case where making changes to sources containing Butter Knife annotations could lead to wrong compilation results
  • Fixed an issue with new @Inject fields not being picked up by Dagger 2
  • Fixed handling low space on the device
  • Fixed a NoClassDefFoundError being thrown when calling getDeclaredField on a class that references unknown types

2.0.20 (December 1, 2016)

  • Fixed JRebel for Android crashing with ArrayIndexOutOfBounds on startup

2.0.18 (November 30, 2016)

  • Improved the handling of out of memory on the host machine
  • Improved the handling of "could not start AVD"
  • Fixed a NPE during Apply Changes
  • Fixed a NPE in the incremental compiler
  • Fixed an exception during startup where an absolute path was expected
  • Fixed a conflict on the gradle class path with okio library
  • Fixed an incremental compiler issue where dependent classes of changed protected API was not being correctly recompiled
  • Fixed a few corner-case issues where changing kotlin lambda classes caused "Apply Changes" to fail
  • Treat all Vivo devices as unsupported

2.0.16 (November 24, 2016)

  • Fixed connecting to device in case of ADB version mismatch (Genymotion)
  • Fixed Java parsing issues with certain lambda expressions and comments
  • Fixed an IllegalStateException: could not find class info for reloaded class with some anonymous inner classes
  • Fixed a NullPointerException if serialVersionUID field was not static final

2.0.14 (November 23, 2016)

  • Added support for Android Studio 2.3 Canary 2
  • Improved incremental compiler precision with Butter Knife
  • Fixed dexer failing with EXCEPTION FROM SIMULATION surfaced by some libraries
  • Fixed reactivating using a license file
  • Fixed JRebel for Android crash when running while Android Device monitor is open
  • Fixed corrupt metadata preventing to start up

2.0.12 (November 15, 2016)

  • Added support for Android Studio 2.3 preview 1
  • Added support for Android Gradle plugin 2.3.0
  • Added incremental compilation support for projects using Databinding
  • Fixed verification issue on API 21 and 22 with certain methods returning arrays
  • Fixed warnings in logcat for API 24 and later

2.0.10 (November 11, 2016)

  • Fixed a critical verification issue with Jackson on API 22

2.0.8 (November 10, 2016)

  • Fixed a case where removing Dagger 2 annotations would result in a build failure
  • Fixed startup failing for projects which had resource shrinking enabled
  • Fixed a rare case where starting with JRebel for Android would throw an UnsatisfiedLinkError

2.0.6 (November 4, 2016)

  • Fixed an issue where reverted resource changes were not properly propagated to the device (switching branches)
  • Fixed an issue with inflating fragment inside fragtment
  • Fixed ConcurrentModificationException when applying changes
  • Fixed IllegalStateException: No load bundles received.
  • Decreased heap space requirements for applying a large set of changes (switching branches)

2.0.4 (October 26, 2016)

  • Fixed dex verification issue when app had an invoke method with a certain signature
  • Fixed a ClassCastException when serialVersionUID is not of type 'long'
  • Fixed applying changes to resources when applyOverrideConfiguration is used
  • Fixed a case where Butter Knife does not pick up first annotation in a class
  • Fixed a timeout crash when apply changes if pressed while paused behind a breakpoint

2.0.2 (October 19, 2016)

  • Fixed an issue with creating temp directory on device
  • Fixed an issue with FileNotFoundException for the APK
  • Fixed a ClassIdNotFoundException during apply changes
  • Fixed a case where uncaught exceptions thrown from new code would result in a weird VM state
  • Fixed a case where changing a view type in a nested fragment resulted in a ClassCastException

2.0.0 (October 13, 2016)

  • All users are now eligible for a new 21-day trial
  • Individual license holders can now:
  • Use the Debugger with JRebel for Android

  • Use JRebel for Android with multidex apps
  • Use JRebel for Android with apps having JNI libraries
  • Improved activation flow for upgrading the license

Notable changes since JRebel for Android 1.0:

  • JRebel for Android now comes with a incremental Java compiler with annotation processor support
  • JRebel for Android no longer needs any changes to build.gradle files
  • Reduced memory usage overhead on the device, especially for large apps

1.3.26 (October 6, 2016)

  • Reduced JRebel for Android IDE plugin distribution size by 54%
  • Fixed incremental compiler inconsistencies caused by external builds between apply changes
  • Fixed reloading Android asset files with Android Gradle plugin 2.2.0-alpha1 and later

1.3.24 (October 4, 2016)

  • Improved Java compilation times for clean builds
  • Fixed a case where cleaning a project wouldn't work on Windows because of .jar file locking issues
  • Fixed Gradle build failing with VerifyErrors during Java compilation
  • Fixed "failed to find constructor entry" error after converting an anonymous class to a lambda
  • Fixed an ArrayStoreException when using retrofit with certain method signatures

1.3.22 (September 30, 2016)

  • Fixed an issue with "Could not detect SDK version"
  • Fixed a FileSystemException "The process cannot access the file because it is being used by another process"
  • Fixed a StackOverflow in ClassNode.getSuperTypes()
  • JRebel for Android now minimizes the messages view when applying changes

1.3.20 (September 23, 2016)

  • Fixed issues with 'Expected baseVersionId'
  • Fixed a serialization issue with ACRA
  • Fixed an issue with Dagger 2 and incremental compilation

1.3.18 (September 19, 2016)

  • Fixed a ButterKnife build failure when a classname contains an underscore
  • Fixed a case where IDE messages tab does not show Gradle build failure reason
  • Fixed a Gradle build failure due to symbols not being found after switching branches

1.3.16 (September 13, 2016)

  • Improved handling of projects with multiple application modules
  • Fixed an incremental Java compiler issue with Icepick, Parceler, Dagger 1 and Dagger 2
  • Fixed a case where JRebel for Android stops with a SocketTimeoutException

1.3.14 (September 6, 2016)

  • Added Dart and Henson support to the incremental compiler
  • Fixed "FileNotFoundException: Input not found" if two libraries had same file name but different case
  • Fixed removing Android resources and classpath resources

1.3.12 (Aug 30, 2016)

  • Improved handling for cleaning the project build directory
  • Improved support for Parceler annotation processor
  • Improved handling for "Method code too large!"
  • Fixed a case where Gradle build did not fail while removed resource is referenced from code
  • Fixed debugger variable pane not showing correct toString() results
  • Fixed "EACCES (Permission denied)" during startup

1.3.10 (Aug 24, 2016)

  • Improved support for AutoValue extensions
  • Fixed Gradle builds failing due to stale generated files if a class had both Icepick and Butterknife annotations
  • Fixed Gradle builds always failing with some Kotlin projects
  • Fixed invalid characters in Gradle output if the OS encoding was not UTF-8
  • Fixed a case where resources changes could've been dropped after install due to a hash collision
  • Fixed code not applying in a case involving deep class hierarchies
  • Fixed JRebel for Android erroneously showing a "Project build directory has been cleaned" notification after a clean and a re-run
  • Fixed "Application data directory on device was cleaned." errors for multiprocess apps

1.3.8 (Aug 17, 2016)

  • Added AutoValue Moshi extension support to the incremental compiler
  • Fixed a NPE during Gradle build when applying changes for some Kotlin projects
  • Fixed ADB error handling
  • Fixed "Cannot remove missing resource" error with lambdas
  • Fixed an issue if resources were changed both before and after an application crash
  • Fixed showing JRebel for Android stopped messages in IDE

1.3.6 (Aug 9, 2016)

  • Fixed running JRebel for Android with Java 6 and Java 7

1.3.4 (Aug 9, 2016)

  • Fixed picking up new overriding methods in certain cases

1.3.2 (Aug 5, 2016)

  • Improved performance and stability of incremental Java compilation
  • Added Dagger 1 support into the incremental Java compiler
  • Disabled incremental Java compilation for projects with KAPT (Annotation Processing Tool for Kotlin) due to incompatibility
  • Added support for adding delegate properties to Kotlin classes
  • Fixed IllegalStateException: expected class info
  • Fixed detecting changes when classes were removed with no other changes
  • Fixed seeing old classes after application crash
  • Fixed Gradle builds always failing if the project had missing classpath entries
  • Fixed ADB integration when ADB_TRACE was turned on
  • Fixed handling PackageManager errors
  • Improved handling of clearing the application data directory

1.3.0 (July 28, 2016)

  • IntelliJ IDEA is now supported if the project uses the Android Gradle plugin
  • Added incremental compilation support to projects with Kotlin and Java
  • Added JRebel for Android events to IDE event log
  • Improved performance and stability of incremental Java compilation
  • Improved handling when the device has run out of free internal storage space
  • Improved handling for applying changes to lambdas
  • Improved handling for inner class removal
  • Fixed showing local variables in debugger
  • Fixed NullPointerException in methods called from constructors
  • Fixed FileAlreadyExistsException for .DS_Store

1.2.30 (July 21, 2016)

  • Improved performance and stability of incremental Java compilation
  • Removed support for Gradle 2.14. Please use Gradle 2.13 and earlier or Gradle 2.14.1 and later to use JRebel for Android
  • Fixed a Resources$NotFoundException occurring after clearing app data
  • Fixed Gradle build failures indicating a LibraryPlugin class loaders mismatch
  • Fixed Java compilation emitting warnings when running with JRebel for Android

1.2.28 (July 14, 2016)

  • Fixed a NullPointerException with Resources.getAssets()
  • Improved performance and stability of incremental Java compilation
  • Improved performance of loading resources on startup
  • Improved handling file system race condition on startup
  • Improved handling of clearing the application data directory

1.2.26 (July 12, 2016)

  • Enabled incremental compilation with Dagger 2 annotation processor for all users
  • Improved handling of obsolete generated sources from annotation processors
  • Fixed an issue where package-private methods would run old code
  • Fixed an issue surfaced by Otto where getDeclaredMethods would fail for abstract methods
  • Fixed build failure caused by 'Empty import declarations have no name'
  • Fixed 'Apply Changes' build failure caused by failing to process anonymous inner classes incl. $$Lambda generated classes

1.2.24 (July 1, 2016)

  • Added support for gradle-3.0-milestone-2
  • Improved runtime reflection speed (large impact on deserialization performance when using Gson or Jackson)
  • Improved Retrofit support

1.2.22 (June 29, 2016)

  • Enabled incremental Java compilation for all users
  • Fixed SecurityException during startup on some multi-user devices
  • Fixed a rare case where resources would be out of date after a rerun
  • Fixed a NullPointerException occurring when ADB was unresponsive
  • Fixed a case where all Gradle builds failed due to file encoding issues with aapt

1.2.20 (June 22, 2016)

  • Fixed 'Project contains classes compiled for Java 8 or newer' for compileSdkVersion 24
  • Fixed handling of clearing the application data directory

1.2.18 (June 20, 2016)

  • Improved performance and stability of incremental Java compilation
  • Fixed "Remote debugger is not attached yet" failure with Individual license
  • Fixed AdbBrokenPipeException

1.2.16 (June 16, 2016)

  • Improved Butterknife support in the incremental Java compiler
  • Improved attaching debugger on startup
  • Improved handling timeout on apply changes
  • Fixed throwing AbstractMethodError instead of IllegalArgumentException in Method.invoke()
  • Fixed Method.invoke() not always calling static initializers
  • Fixed handling application installation failures

1.2.14 (June 8, 2016)

  • Improved performance and stability of incremental Java compilation
  • Improved handling when the device has run out of free internal storage space
  • Fixed "No files to commit" crashes during startup
  • Fixed a crash when closing the emulator while JRebel for Android is starting

1.2.12 (May 31, 2016)

  • Improved performance and stability of incremental Java compilation
  • Disable Incremental Java compilation when project uses Error Prone due to incompatibilities
  • Changes are now applied after the top-most activity is destroyed and before it's recreated
  • Fixed "Could not connect to the agent"
  • Fixed TimeOutException on startup
  • Fixed IllegalStateException: Missing optimized DEX file surfaced by ADB flakiness
  • Fixed apply changes with some custom views
  • Fixed IllegalStateException: class loader is not a PathClassLoader

1.2.10 (May 24, 2016)

  • Fixed starting JRebel for Android with emulators on Android Studio 2.2 preview 1
  • Fixed incremental compilation not kicking in when generated sources were changed
  • Fixed occasional "zip file closed" error when modifying classes in library projects
  • Fixed an UnsatisfiedLinkError surfaced by React Native
  • Fixed starting up on Kitkat devices with ART enabled

1.2.8 (May 20, 2016)

  • Added support for Android Studio 2.2 preview 1
  • Added support for Android Gradle plugin 2.2.0-alpha1
  • Fixed handling duplicate classpath resources

1.2.6 (May 18, 2016)

  • Added support for transforms (like Retrolambda) in Android library projects
  • Fixed Gradle build instability after making AndroidManifest.xml changes
  • Fixed a case where the app keeps crashing with "Out of order map item" dex2oat error
  • Fixed a "Failed to accept socket" concurrency issue on app startup

1.2.4 (May 16, 2016)

  • Incremental Java compilation now supports the Icepick library
  • Disable incremental Java compilation when the project uses Error-prone due to incompatibilities
  • Fixed switching from ART to Dalvik device with no changes
  • Fixed "simulation exception"
  • Fixed "commit failed"
  • Fixed MissingBackpressureException
  • Fixed serialVersionUID on Android N

1.2.2 (May 10, 2016)

  • Enabled custom incremental java compiler for more users
  • Improved SugarORM support
  • Fixed hitting breakpoints in static initializers and constructors of Application subclasses

1.2.0 (May 9, 2016)

  • JRebel for Android now includes a custom incremental Java compiler supporting Butter Knife and Dagger (both 1 and 2)
  • Added support for configuring Gradle though IDE settings
  • Added support for SugarORM library
  • Improved apply changes speed
  • Improved anonymous inner class handling
  • Improved stability on Android N
  • Fixed loading native libraries on Android N
  • Fixed applying changes to Android resources with APK splits
  • Fixed "Missing optimized DEX file"
  • Fixed including native libraries from non-standard locations
  • Fixed RuntimeException when debugger could not be attached due to a failing emulator

1.1.14 (April 27, 2016)

  • Improved incremental javac performance (experimental flag)
  • Added initial support for Android N preview
  • Fixed handling projects where apk path changes with each build
  • Fixed occasional aapt "Error parsing XML: no element found"
  • Fixed "The specified installation directory does not exist" Gradle error on startup
  • Fixed a possible ConcurrentModificationException when some classes were removed
  • Fixed UnsatisfiedLinkError for arm applications on devices with libhoudini
  • Fixed handling disconnecting the device from the host computer

1.1.12 (April 21, 2016)

  • Improved incremental javac support for ButterKnife (experimental flag)
  • Fixed handling library changes with .so files
  • Fixed RuntimeException: Method code too large!

1.1.10 (April 14, 2016)

  • Initial Dagger 1 annotation processor support for incremental javac (experimental flag)
  • Improved applying changes to Kotlin and Retrolambda anonymous inner classes
  • Improved handling for no space left on device
  • Fixed starting a non-existant activity declared in the manifest
  • Fixed "End Of Central Directory signature not found"
  • Fixed an issue with UnsubscribedException
  • Fixed "Could not process" for AutoValue generated class
  • Fixed activity task handling when resuming application from launcher
  • Fixed a case where dependent classes were not recompiled when a constant was removed (experimental flag)
  • Fixed incorrect "Execution of removed code detected" events restarting the app even though no code was removed

1.1.8 (April 5, 2016)

  • Improved connection handling stability with experimental flag enabled
  • Fixed file locking issues with experimental flag enabled
  • Fixed an IllegalArgumentException in IDE
  • Fixed layout inflation issues when an imeActionId attribute referenced an ID
  • Fixed multiple issues with removing methods
  • Fixed disk space leak on the host computer
  • Fixed showing previous application crash on startup
  • Fixed installing application twice on startup
  • Fixed IllegalStateException: anon inner class cannot have changed super class
  • Fixed dex SimExceptions when testCoverageEnabled was true

1.1.6 (March 29, 2016)

  • Improved connection handling with the device (experimental flag)
  • Added source navigation support to incremental Java compiler errors (experimental flag)
  • Added support for changing assets referenced from WebView
  • Reduced Gradle overhead when applying changes
  • Improved the reporting of application crashes in the JRebel for Android IDE tool window
  • Fixed a case where only removing classes and then applying changes could lead to a broken state
  • Fixed occasional Jansi warnings on Windows when using the incremental Java compiler (experimental flag)
  • Fixed JRebel for Android sometimes not starting with 32-bit JVMs
  • Fixed incompatibilities with Android Gradle plugin 1.4.0-beta versions
  • Fixed a bug where upgrading JRebel for Android IDE plugin could lead to a broken JRebel for Android installation on Windows
  • Fixed an occasional ObjectCollectedException when using the debugger with a Kotlin project

1.1.4 (March 21, 2016)

  • Improved support for RoboGuice and Guice libraries
  • Improved handling of removed classes and methods
  • Improved connection handling with the device (experimental flag)
  • Improved startup speed for projects using ProGuard for debug builds
  • Decreased IO overhead during apply changes
  • Fixed a bug with Retrolambda where classes were not transformed
  • Fixed resource ID inconsistencies surfaced by projects with APK splits
  • Fixed UnsatisfiedLinkError for projects having only armeabi native libraries
  • Fixed "null is not a valid development app key" startup error with Urban Airship library
  • Fixed startup error when IDE is running with 64-bit VM and project is configured to use 32-bit VM

1.1.2 (March 14, 2016)

  • Enabled Dagger 2 support with incremental compiler (experimental flag)
  • Fixed bugs with incremental compiler (experimental flag)
  • Fixed library project changes not being picked up for certain projects

1.1.0 (March 8, 2016)

  • Improved startup times
  • Reduced memory usage overhead on the device, especially for large apps
  • Fixed a NullPointerException when restarting the app after it had crashed

1.0.28 (March 2, 2016)

  • Improved handling agent crashes
  • Fixed IllegalStateException: classId not yet created
  • Fixed issues with ClassNotFoundException
  • Fixed causing INSTALL_PARSE_FAILED_MANIFEST_MALFORMED when running without JRebel for Android

1.0.26 (February 23, 2016)

  • Added back incremental javac with support for ButterKnife (experimental flag)

1.0.24 (February 17, 2016)

  • JRebel for Android no longer needs changes to build.gradle files. Existing configuration is removed automatically.
  • Added indeterminate progress bar for startups and applying changes
  • Improved handling for applying changes to Kotlin lambdas
  • Fixed IllegalAccessException for private static methods turned into non-private
  • Fixed stack underflow when dexing

1.0.22 (February 10, 2016)

  • Improved handling of removed classes
  • Fixed NoSuchFieldErrors surfaced by Butterknife
  • Fixed a few issues with experimental features (experimental flag)

1.0.20 (February 5, 2016)

  • Fixed "No project layout set." IllegalStateException introduced in 1.0.18

1.0.18 (February 3, 2016)

  • Improved handling of AndroidManifest.xml changes (experimental flag)
  • Improved handling of project structure changes (like changing dependencies)
  • Fixed the small (re-)launch button in the JRebel for Android console
  • Fixed a few bugs in the "Send Feedback" dialog
  • Fixed displaying an application crash when the stacktrace was large (1+ MB)
  • Fixed a NullPointerException when preparing the application
  • Fixed Otto subscriptions with final methods

1.0.16 (January 27, 2016)

  • Improved reloading speed (experimental flag)
  • Improved initial and incremental install speed for projects having JNI libraries (experimental flag)
  • Fixed class path resources missing when minify enabled
  • Fixed edge case IllegalAccessError when accessing public fields through reflection

1.0.14 (January 18, 2016)

  • Added support for Android Studio Preview 5
  • Added support for Android Gradle plugin 2.0.0-alpha5
  • Reverted native library optimization due to instabilities

1.0.12 (January 14, 2016)

  • Improved startup times for apps with native libraries
  • Fixed a runaway allocation causing large performance problems on the device

1.0.10 (January 8, 2016)

  • Improved startup time when proguard is enabled
  • Fixed IllegalStateException: A class file was deleted during processing
  • Fixed Illegal class access error with Kotlin
  • Fixed switch branching when new values were added to enums
  • Fixed IllegalStateException: No files to commit
  • Fixed NullPointerException with ClassLoader
  • Fixed issues with NoClassDefFoundError

1.0.8 (December 30, 2015)

  • Fixed "GC overhead limit exceeded" for larger apps
  • Fixed an issue with ActiveAndroid
  • Fixed an issue with anonymous inner classes
  • Improved support for APK splits

1.0.2 (December 22, 2015)

  • Improved startup performance
  • Fixed a StackOverflowError surfaced by butterknife
  • Fixed calling public methods in private classes via reflection
  • Fixed IllegalStateException: JRebel was not configured for the project

1.0.0 (December 15, 2015)

  • All users are now eligible for a new 21-day trial
  • Added support for Android Studio 2.0 Preview 3b
  • Improved debugger integration
  • Really fixed "Invalid Gradle Timings found" error
  • Fixed StackOverflowError surfaced by certain class hierarchies

0.9.46 (December 9, 2015)

  • Significantly improved startup times, especially for large projects
  • Fixed a regression introduced in 0.9.40 with resource handling in library projects
  • Fixed a debugger issue with displaying local variables

0.9.44 (December 7, 2015)

  • Improved compatibility with Android Studio 2.0
  • Improved error messaging in the JRebel for Android tab
  • Fixed an abstract method issue with Devices running 4.4 or older
  • Fixed a font issue in the "Send feedback" dialog
  • Fixed "Invalid Gradle timings found" error
  • Fixed a case where terminating the app from the IDE would restart the app

0.9.42 (December 2, 2015)

  • Decreased startup time by about 1 second
  • Fixed DexException: no classfiles specified

0.9.40 (December 1, 2015)

  • Fixed resources instances not getting new configuration
  • Fixed issue with debugger integration

0.9.38 (November 27, 2015)

  • Added support for the Retrolambda 3.3.x-beta Gradle plugin
  • Fixed NoClassDefFoundError with some Retrolambda reloads
  • Fixed IllegalStateException: Could not read error report: Permission denied
  • Fixed ManifestParseException for manifests with duplicate string entries in the string pool
  • Fixed a regression with loading JNI libraries when using Android Gradle plugin 1.5.0 or later

0.9.36 (November 24, 2015)

  • Improved reload performance for build variants with minifyEnabled
  • Added support for Android Gradle plugin 2.0.0-alpha1
  • Added support for Android Studio 2.0 Preview

0.9.34 (November 23, 2015)

  • Fixed issues related to Retrolambda
  • Fixed mismatched stack depths exception
  • Fixed erroneously showing previous crash stacktrace after restarting

0.9.32 (November 16, 2015)

  • Added support for Android Studio 1.5 RC1
  • Added support for Android Gradle plugin 1.5.0

0.9.30 (November 11, 2015)

  • Fixed ClassNotFoundException on startup
  • Fixed ClassNotFoundException when unmarshalling
  • Fixed NoSuchMethodError: No virtual method jr_super_selector

0.9.28 (November 3, 2015)

  • Fixed IllegalStateException: no 'this' pointer within static method
  • Fixed NullPointerException in ReflectionAnnotationHelper
  • Fixed MissingBackpressureException
  • Fixed ClassCastException with ClassLoader

0.9.26 (October 29, 2015)

  • Fixed a restart loop
  • Fixed NoSuchMethodError
  • Fixed FileNotFoundException: Bundle does not exist
  • Fixed IllegalStateException: Could not find info
  • Fixed MissingBackpressureException

0.9.24 (October 26, 2015)

  • Improved initial startup time (ca 20% on 4-core CPU)
  • Fixed No reloads expected
  • Fixed FileNotFoundException on startup
  • Fixed Resource entry is already defined

0.9.22 (October 16, 2015)

  • Fixed issues with Android Studio 1.5 Preview 1
  • Fixed a reflection issue with dynamic proxies

0.9.20 (October 14, 2015)

  • Fixed signing APK without keypass
  • Fixed invalid local when dexing Groovy code
  • Fixed an issue for Kotlin M14

0.9.18 (October 7, 2015)

  • Improved application startup performance
  • Improved showing application crash dialog
  • Fixed clean build failures when both multidexEnabled and minifyEnabled were set
  • Fixed NullPointerException when processing classes
  • Fixed IllegalStateException: ClassId not yet created
  • Fixed IllegalStateException: Expected BEGIN_OBJECT
  • Fixed DexException with Groovy

0.9.16 (October 5, 2015)

  • Make project and make module do not trigger reload anymore - use the dedicated "Apply changes" button
  • Fixed StrictMode violations caused by JRebel for Android
  • Fixed NPE in Lookuputil
  • Fixed using 100% CPU when offline
  • Improved application startup performance

0.9.14 (September 24, 2015)

  • Added the option to restart an app from the crash dialog
  • Implemented support for referencing new methods from android:onClick attribute
  • Fixed compatibility issues with Android Gradle 1.4.0-beta2 plugin
  • Fixed a few issues with reloading lambdas processed by Retrolambda
  • Fixed handling Scala lambdas

0.9.12 (September 21, 2015)

  • Added a new "Apply changes with JRebel for Android" button for applying changes just like "Make Project"
  • Improved PID detection on application startup
  • Fixed a reflection bug surfaced by Otto and EventBus on Android M
  • Fixed handling constructors referencing new static variables
  • Fixed displaying method parameters in the debugger

0.9.10 (September 17, 2015)

  • Implemented automatic app restart on class hierarchy changes
  • Implemented initial support for reloading lambda classes
  • Improved subsequent startup speed
  • Fixed a ClassNotFoundException during initial launch

0.9.8 (September 15, 2015)

  • Implemented support for adding new GreenRobot EventBus subscribers
  • Fixed a bug with debugger where the values of some variables were not available
  • Fixed a bug related to renaming the application id
  • Fixed a crash when reloading apps with TabActivities
  • Fixed a bug with dotted enum names in attr definitions
  • Fixed a bug with overlapping application ids
  • Improved handling in case of crashes caused by OOM

0.9.6 (September 10, 2015)

  • Fixed an issue with Android Studio 1.4 Beta 3
  • Fixed attaching remote debugger
  • Fixed TimeoutException: Could not find PID
  • Fixed RuntimeException: Should never happen with Groovy
  • Fixed NullPointerException in PlainSocketImpl
  • Fixed NullPointerException in StackTraceUtil
  • Fixed IllegalStateException: Could not process class
  • Fixed IOException: Unable to delete file on startup
  • Fixed TimeoutException with Dexing

0.9.4 (September 7, 2015)

  • Fixed a building issue with styleable attribute flags
  • Fixed a Dexer simulation error with Kotlin
  • Fixed an issue related to nested anonymous classes
  • Fixed an issue related to installing the application
  • Fixed an issue related to device reconnection
  • Fixed an issue related to class hierarchy changes
  • Fixed an issue with sending feedback
  • Increased dexer heap size if at least 8GB of RAM

0.9.2 (September 3, 2015)

  • Minor plugin metadata changes for publishing

0.9.0 (September 3, 2015)

  • Initial early access release (August 31, 2015)

  • Fixed issues related to device reconnection (August 28, 2015)

  • Improved automatic Gradle configuration
  • Improved adb error handling
  • Increased dexer heap size when on a 64-bit JVM (August 24, 2015)

  • Fixed IDE plugin crash on Android Studio 1.4 Preview 3
  • Fixed thrown exception type when calling Enum.valueOf with non-existant value (August 21, 2015)

  • Fixed VerifyError with abstract methods
  • Fixed startup bug with ActiveAndroid
  • Fixed NullPointerException with processing classes
  • Fixed NullPointerException with splash screen
  • Decreased memory usage on machines with smaller RAM (August 18, 2015)

  • Fixed bugs related to nested anonymous classes (August 14, 2015)

  • Fixed IDE plugin for Android Studio 1.4 preview
  • Fixed several bugs related to nested anonymous inner classes
  • Fixed reloading for Kotlin lambda classes and synthetic classes
  • Fixed startup on 32bit Windows
  • Fixed StackOverflowError for field annotations retrieval (August 13, 2015)

  • Fixed several bugs related to nested anonymous classes
  • Fixed VerifyError for private static native methods
  • Fixed ClassNotFound on only library changes
  • Fixed launch for users with overwritten user.home property
  • Fixed Class.newInstance for classes with protected constructors only
  • Fixed startup bug for applications listening on TCP ports (August 11, 2015)

  • Fixed building project with resource ids containing dots
  • Fixed IllegalAccessException with some reflective calls
  • Fixed IllegalStateException on reload
  • Fixed NullPointerException from Throwable.getStackTrace
  • Improved error handling (August 7, 2015)

  • Improved connection stability between the device and JRebel for Android
  • Fixed a regression in startup time for single-module projects
  • Fixed a NPE surfaced by reflective getConstructor call
  • Fixed an issue where Fragment.onViewCreated() callbacks were dropped
  • Fixed a crash during "Make Project" if the project had empty gradle modules
  • Fixed a case where dex2oat would fail during startup
  • Fixed IDE crash when Gradle build failed while JRebel for Android was running (August 5, 2015)

  • Fixed a regression in startup performance for single-module projects
  • Fixed an issue with Make project icon
  • Fixed a bug related to cleaning the project while JRebel for Android was running (August 4, 2015)

  • Fixed a bug surfaced by upgrading butterknife
  • Fixed an app crash when a view type for a given id was changed in layout
  • Fixed a startup failure caused by having an android:backupAgent in manifest
  • Fixed an issue when a library was using Thread.getContextClassLoader()
  • Fixed running projects which did not have gradle direct invocation enabled
  • Fixed a startup issue on Samsung 4.1 and 4.2 devices (July 28, 2015)

  • Improved consecutive startup speed
  • Fixed class loading issue
  • Fixed showing 'make project' dialog when not applicable
  • Improved messaging when attempting to launch JRebel with non-debuggable build variant (July 24, 2015)

  • Improved anonymous inner class reloading
  • Fixed issue causing startup crash
  • Fixed invoking private native methods
  • Fixed an issue causing reloads to fail (July 16, 2015)

  • Strongly advising the usage of 'make project' instead of 'make module' to trigger reloads
  • Fixed picking up library changes at startup
  • Skip compilation of tests if JRebel is running
  • Fixed getting AbstractMethodError and IllegalAccessException with reflection
  • Fixed resource changes not being picked up after restart due to unsupported class change
  • Fix critical startup crash when using JDK 7+ constructors in subclasses (July 8, 2015)

  • Re-enabled startup performance optimizations (instabilities resolved)
  • Fixed a bug impacting first reload time
  • Fixed a NullPointerException with Gson
  • Fixed Gradle configuration issues with in-tree App Engine modules (July 6, 2015)

  • Disabled startup performance optimization due to instability
  • Fixed an issue with Kotlin on Dalvik (July 3, 2015)

  • Improved startup performance
  • Improved reloading .proto changes with the Wire library
  • Fixed an issue with invoking constructors via reflection
  • Fixed an issue with starting application on the device
  • Fixed reloading constructors with try-catch blocks (June 26, 2015)

  • Added launch with debugger support
  • Improved anonymous inner class reloading
  • Fixed a bug surfaced by Jodatime-android
  • Fixed a dexing issue surfaced by the Wire library
  • Fixed invoking package-private methods declared within a reloaded superclass
  • Fixed printing app crash stacktrace in IDE logcat view (June 17, 2015)

  • Fixed a possible IDE hang on startup (June 15, 2015)

  • Improved startup times
  • Fixed printing crash stacktraces on device
  • Fixed an issue with handling anonymous inner class constructors
  • Fixed an occasional IDE hang when switching or closing projects (June 9, 2015)

  • Fixed a StrictMode violation when reloading
  • Fixed a NoMethodFound error when using Otto
  • Add support for buildtools 23-rc1 and 23-rc2 (June 5, 2015)

  • Fixed app crash dialog not showing up when running with JRebel
  • Fixed a case where reloads were dropped after a class had been reloaded more than 9 times
  • Improved startup times (June 2, 2015)

  • Fixed a crash with parcelables when reloading
  • Reduced the heap space on device used by JRebel (May 29, 2015)

  • Added support for custom keystore types
  • Fixed issue regarding certain changes to resources causing compilation to fail
  • Fixed an issue with loading custom fonts from assets
  • Reduced heap space usage on the device
  • Added a menu item to Android Studio enabling easy sending of feedback and log files (May 26, 2015)

  • Significantly improved resource reload times
  • Fixed malformed manifest bug on initial install
  • Improved support for using annotation processors in various project configurations
  • Increased initial install timeouts for really large apps
  • Fixed a class processing issue if Kotlin and Butterknife were used in the same project (May 20, 2015)

  • Improved start-up times, especially with large multidex apps
  • Fixed an issue with main dex list being too large for some multidex apps
  • Fixed an activity leak caused by JRebel
  • Fixed app startup on ICS devices (May 18, 2015)

  • Fixed a crash due to a closed AssetManager
  • Fixed reloads not triggering in single-module projects
  • Fixed failing PID detection for apps with numbers in the application id (May 15, 2015)

  • JRebel is now quicker at reacting to changes
  • Improved resource reloading speed
  • Reloading anonymous inner classes is now more robust
  • Fixed a ClassNotFoundException surfaced by annotation processing
  • Fixed a buffer overflow at startup
  • Fixed support for Retrolambda gradle plugin 3.1.0
  • Better support for really large multidex apps
  • Fixed a reload crash if the app uses custom view IDs (May 12, 2015)

  • Fixed an issue with 9-patch drawables not being processed correctly (May 11, 2015)

  • Improved the performance of reloads
  • Improved support for multi-dex applications
  • Fixed a BufferOverflowException on startup
  • Fixed an issue with the Retrolambda library (May 5, 2015)

  • Fixed an issue with stopwatch
  • Fixed duplicate R classes on startup
  • Fixed NullPointerException on startup
  • Improved startup performance on ART (April 30, 2015)

  • Fixed TCP port collision on device
  • Added support for starting JRebel with specific activity in the run configuration
  • Fixed handling custom source generators in Gradle (April 29, 2015)

  • Fixed file watching issues
  • Reloading resources is now triggered by make module, just like code changes
  • Log file location has been moved out of the build dir to $USER/.jrebel-android/logs
  • Improved printing stacktraces (April 27, 2015)

  • Fixed disk space leak on the device
  • Improved automatic configuration of build.gradle files
  • Fixed automatic restarting of the app (April 23, 2015)

  • Fixed loading JNI libraries