Android Proguard 失败 "Value 'i' is not a reference value"
Android Proguard failing with "Value 'i' is not a reference value"
我最近向我的应用程序添加了一个库('GNSDK' by Gracenote),现在我正在尝试使用 Proguard 构建应用程序以进行发布。我成功构建并安装了应用程序的发布版本一次,但所有后续尝试都会产生此错误:
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]`
我试图强制 proguard 单独离开库(因为这是调试版本和发布版本之间的唯一区别):
-keep class com.gracenote.** {
*;
}
不过好像没什么区别。
关于如何调试或追踪此错误的任何提示?我不确定为什么 com.gracenote.gnsdk.GnManager
的构造函数会失败。该错误听起来像是获得了无效的 输入 。
我正在使用 Android Studio 1.4,构建工具 23.0.0。
我发现这是 Proguard 中的错误:https://sourceforge.net/p/proguard/bugs/573/
看起来很快就会发布。同时,您可以通过添加以下内容来变通:
-optimizations !class/unboxing/enum
到你的混淆文件。
就其价值而言,我发现这是一个 java 项目。当它应该是 1.9 时,我是 运行 proguard 目标 1.8。一旦我改变它就起作用了。
我最近向我的应用程序添加了一个库('GNSDK' by Gracenote),现在我正在尝试使用 Proguard 构建应用程序以进行发布。我成功构建并安装了应用程序的发布版本一次,但所有后续尝试都会产生此错误:
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]`
我试图强制 proguard 单独离开库(因为这是调试版本和发布版本之间的唯一区别):
-keep class com.gracenote.** {
*;
}
不过好像没什么区别。
关于如何调试或追踪此错误的任何提示?我不确定为什么 com.gracenote.gnsdk.GnManager
的构造函数会失败。该错误听起来像是获得了无效的 输入 。
我正在使用 Android Studio 1.4,构建工具 23.0.0。
我发现这是 Proguard 中的错误:https://sourceforge.net/p/proguard/bugs/573/
看起来很快就会发布。同时,您可以通过添加以下内容来变通:
-optimizations !class/unboxing/enum
到你的混淆文件。
就其价值而言,我发现这是一个 java 项目。当它应该是 1.9 时,我是 运行 proguard 目标 1.8。一旦我改变它就起作用了。