6
|
Stephen Kellett · 技术社区 · 14 年前 |
![]() |
1
3
似乎您无法使用defineclass()定义本机方法并直接从注入的代码调用该本机方法。您必须在注入类中使用蹦床方法(以Java字节码的形式),然后调用您的本机方法。只有这样才能奏效。我花了三天时间来解决这个问题。 另一个方法是确保注入的代码是有效的。我尝试的代码看起来是有效的,但仔细检查后,我从常量池中提取了一个4字节大小的常量作为8字节指令的操作数。所以验证失败了。一旦固定好了(和当地的蹦床),一切都开始工作了。 然而,为了完成所有的排列,我花了3天的时间。不过,在国际单项体育联合会工作时感觉很好。 蹦床怎么做?请参见与Java SDK一起使用的示例(在C中)。它们很长,不适合在这里张贴。 |