Releases: Guardsquare/proguard
7.4.2
Bugfixes
- Fix potential access issues when backporting.
- Fix potential NoClassDefFoundError when using type specialization optimization. (#373)
- Improve processing of Kotlin metadata flags to prevent unnecessary null checks for consumers of protected library artifacts.
- Prevent potential
StackGeneralizationException
during optimization when processing methods with many arguments.
Added
ProGuardTask
support for Gradle configuration cache. (#254)
7.4.1
7.4
Java support
- Add support for Java 21. (#331)
Kotlin support
- Add support for Kotlin 1.9.
Bugfixes
- Fix "NoClassDefFoundError: Failed resolution of: Lorg/apache/logging/log4j/LogManager" when using GSON optimization or
-addconfigurationdebugging
. (#326) - Don't drop Record attribute for records with no components. (proguard-core#118)
- Fix potential duplication class when name obfuscating Kotlin multi-file facades.
- Do not inline interface methods during optimization to avoid compilation errors during output writing due to an interface method being made package visible.
Added
- Support parsing of wildcard
*
when used as a field type or method return type in class specifications.
7.4.0-beta02
Version 7.4-beta02
Java support
- Add support for Java 21. (#331)
Kotlin support
- Add support for Kotlin 1.9.
Bugfixes
- Fix "NoClassDefFoundError: Failed resolution of: Lorg/apache/logging/log4j/LogManager" when using GSON optimization or
-addconfigurationdebugging
. (#326) - Don't drop Record attribute for records with no components. (proguard-core#118)
- Fix potential duplication of classes when name obfuscating Kotlin multi-file facades.
7.4.0-beta01
7.3.2
7.3.1
Version 7.3.1
Kotlin support
- Add support for Kotlin 1.8.
Improved
- Conservative optimization is now the default. Previously, it could be enabled by setting the
optimize.conservatively
system property. This has been replaced with the-optimizeaggressively
option, which sets optimization to aggressive. - Improve optimization performance in edge cases with generated code. (#283)
Bugfixes
- Fix
-keepparameternames
to keep Kotlin function, constructor and property setter parameter names. - Fix
-keepparameternames
to keep Kotlin annotation constructor parameter names. - Fix
-keepparameternames
to keep Kotlin interface parameter names. - Fix potential
NullPointerException
while processing enum classes with invalid Kotlin metadata. - Fix potential
Instruction has invalid constant index size
error during GSON optimization. - Fix member specialization & generalization optimizations.
- Fix potential "小an't find referenced class ClassName$DefaultImpls" warnings. (#290)
7.3.0
Java support
To allow ProGuard to continue to optimize, obfuscate and shrink Java class files ProGuard now supports all Java versions including Java 19.
- Add support for Java 19. (
PGD-247
)
Kotlin support
ProGuard 7.3 deprecates the -keepkotlinmetadata
option. You can use -keep class kotlin.Metadata
instead
which automatically enables processing of Kotlin metadata. Some consumer rules, from libraries
such as kotlin-reflect
, already contain this rule which means that Kotlin metadata processing will be enabled
automatically in those cases.
- Add support for Kotlin 1.7.
- Improve support for Kotlin library projects. (
T3752
) - Automatically process Kotlin Metadata when keeping the
kotlin.Metadata
annotation. (T3116
)
Improved
- Improve app startup times when using
-addconfigurationdebugging
. (T17153
)
Bug fixes
- Prevent merging classes with native methods that would result in
UnsatisfiedLinkError
. - Fix optimization of simple enums (optimization
class/unboxing/enums
). - Prevent potential build time
NullPointerException
when processing Kotlin interface methods. - Fix ProGuard Gradle Plugin not working correctly on Windows. (
PGD-272
)
7.3.0-beta2
Version 7.3.0-beta2
7.3.0-beta2 includes 2 bug fixes, on top of the changes in 7.3.0-beta1.
Bug fixes
- Prevent potential build time
NullPointerException
when processing Kotlin interface methods. - Fix ProGuard Gradle Plugin not working correctly on Windows. (
PGD-272
)
7.3.0-beta1
Version 7.3.0-beta1
Java support
New Java versions are released every 6 months.
To allow ProGuard to continue to optimize, obfuscate and shrink Java class files ProGuard now supports all Java versions including Java 19.
- Add support for Java 19. (#247)
Kotlin support
New Kotlin versions are released every 6 months.
To allow ProGuard to continue to optimize, obfuscate and shrink Kotlin generated class files and their corresponding metadata ProGuard now supports Kotlin reading Kotlin classes from version 1.0 to 1.7 and writing Kotlin metadata with version 1.6 (readable by Kotlin reflection library / compiler 1.5 - 1.7).
- Add support for Kotlin 1.7.
- Improve support for Kotlin library projects. (
T3752
)
Improved
- Improve app startup times when using
-addconfigurationdebugging
. (T17153
)
Bug fixes
- Prevent merging classes with native methods that would result in UnsatisfiedLinkError.
- Fix optimization of simple enums (optimization
class/unboxing/enums
).