我最近在我的应用程序中添加了一个库(Gracenote的'GNSDK'),现在我正在尝试使用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'.
Run Code Online (Sandbox Code Playgroud)
值"i"不是参考值[proguard.evaluation.value.UnknownIntegerValue]
我试图强迫proguard离开库(因为这是调试和发布版本之间的唯一区别):
-keep class com.gracenote.** {
*;
}
Run Code Online (Sandbox Code Playgroud)
但它似乎没有什么区别.
有关如何调试或追踪此错误的任何提示?我不确定为什么构造函数com.gracenote.gnsdk.GnManager会失败.该错误使其听起来像是无效的输入.
我正在使用Android Studio 1.4,构建工具23.0.0.
我正在尝试将数据从Excel电子表格导出到相当复杂的关系数据库中.电子表格通过声明其他对象的名称来指示"外键".(幸运的是,我对电子表格有一些控制权,所以我可以保证这些名称是唯一的,并且它们引用的对象实际存在).
我有一个程序可以在MSSql数据库中重新创建这些表,但它不能自动将它们相互链接.此外,我不想使用对象的实际名称作为主键,因为最终数据库将很大.
因此,如果我有许多现有但未连接的表通过其"名称"字段相互引用,我如何添加通过其ID链接它们的外键?
我所拥有的简化版本:
Parent
ID: 1 (PK)
Name: Mary
Child
ID: 2 (PK)
Name: Jane
ParentName: Mary
Run Code Online (Sandbox Code Playgroud)
而我想要实现的目标:
Child
ID: 2 (PK)
Name: Jane
ParentID: 1 (FK)
Run Code Online (Sandbox Code Playgroud)
谢谢你的帮助!我无法找到如何在事后添加外键映射或在不同字段上添加外键映射的示例.