Search code examples
javaandroidandroid-studioproguardandroid-proguard

Proguard error on APP release - android/arch/core/internal/SafeIterableMap


Proguard failed with this message after optimizing app.

compileSdkVersion = 27

buildToolsVersion = "27.0.3"

minSdkVersion = 16

targetSdkVersion = 27

Shrinking... Removing unused program classes and class elements... Original number of program classes: 6833 Final number of program classes: 6348 Optimizing... Unexpected error while computing stack sizes: Class = [android/arch/core/internal/SafeIterableMap$1] Method = [zzf(Ljava/lang/String;)J] Exception = [java.lang.IllegalArgumentException] (Stack size becomes negative after instruction [24] invokestatic #4625 in [android/arch/core/internal/SafeIterableMap$1.zzf(Ljava/lang/String;)J]) Warning: Exception while processing task java.io.IOException: java.lang.IllegalArgumentException: Stack size becomes negative after instruction [24] invokestatic #4625 in [android/arch/core/internal/SafeIterableMap$1.zzf(Ljava/lang/String;)J] Thread(Tasks limiter_5): destruction :app:transformClassesAndResourcesWithProguardForRelease FAILED


Solution

  • In my case I fixed this by commenting these lines in proguard file:

    #-assumenosideeffects class android.util.Log {
    #    public static *** d(...);
    #    public static *** v(...);
    #    public static *** i(...);
    #    public static *** w(...);
    #    public static *** e(...);
    

    I ended up using if(BuildConfig.DEBUG) for each log