不允许命令 - 安装小程序时不满足使用条件

Command not allowed - Conditions of use not satisfied when installing applet

我正在尝试在 Java 卡上安装一个简单的小程序,但出现错误:

load returns 0x80206985 Command not allowed - Conditions of use not satisfied when installing applet

代码似乎可以在 Eclipse 的模拟器上运行,但是当我想转换它并将 CAP 文件发送到卡时,出现上述错误。我使用 GPSshell 来安装小程序。下面列出了安装程序脚本

mode_201
gemXpressoPro
enable_trace
enable_timer
establish_context
card_connect
select -AID A000000018434D00
open_sc -security 3 -keyind 0 -keyver 0 -key 47454d5850524553534f53414d504c45
install -file sid.cap 
card_disconnect
release_context

Java Card 的 SDK 是 2.2.2 版,我使用 Eclipse-JCDE0.2 进行转换。当我尝试安装任何其他小程序时,我遇到了同样的错误。我还尝试将 Java Card SDK 降级到 2.1.1 版本,但这并没有解决我的问题。我在下面附上了问题的截图。

我设法通过从 Java Card 2.2.2 降级到 Java Card 2.2.1 来解决问题。看来这是 Java Card SDK 和我使用的 GpShell 版本之间的兼容性问题。

您在上传小程序代码(LOAD 命令)时收到的错误表明卡上验证过程在您的小程序代码库中发现了它不接受的内容(例如使用框架 class不存在、使用不存在的方法、无效指令等)

这也符合您从 Java Card SDK 2.2.2 降级到 Java Card SDK 2.2.1 的经验。顺便提一句。 GPSshell 不关心 Java 卡版本,它是生成该错误的卡。