Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android Proguard failing with "Value 'i' is not a reference value"

I recently added a library to my app ('GNSDK' by Gracenote) and am now trying to build the app for release using Proguard. I successfully built and installed the release version of the app once, but all subsequent attempts produce this error:

Unexpected error while evaluating instruction:
 Class       = [com/gracenote/gnsdk/GnManager]   
 Method      = [<init>(Landroid/content/Context;Ljava/lang/String;I)V]
 Instruction = [87] getfield #120
 Exception   = [java.lang.IllegalArgumentException] (Value "i" is not a 
  reference value [proguard.evaluation.value.UnknownIntegerValue])
  Unexpected error while performing partial evaluation:
    Class       = [com/gracenote/gnsdk/GnManager]
    Method      = [<init>(Landroid/content/Context;Ljava/lang/String;I)V]
    Exception   = [java.lang.IllegalArgumentException] (Value "i" is not a reference value [proguard.evaluation.value.UnknownIntegerValue])
  :app:proguardBetaRelease FAILED
  Error:Execution failed for task ':app:proguardBetaRelease'.

Value "i" is not a reference value [proguard.evaluation.value.UnknownIntegerValue]`

I tried to force proguard to leave the library alone (since that's the only difference between the debug and release builds) with:

-keep class com.gracenote.** {
    *;
}

but it does not seem to make a difference.

Any hints on how to debug or track down this error? I am not sure why the constructor of com.gracenote.gnsdk.GnManager would be failing. The error makes it sound like it is getting an invalid input.

I'm using Android Studio 1.4, build tools 23.0.0.

like image 397
Lisa Wray Avatar asked Dec 05 '22 02:12

Lisa Wray


1 Answers

I found that this is a bug in Proguard: https://sourceforge.net/p/proguard/bugs/573/

Looks like it will be released soon. In the meantime, you can work around by adding:

-optimizations !class/unboxing/enum

to your proguard file.

like image 120
Lisa Wray Avatar answered Dec 10 '22 11:12

Lisa Wray