我使用 mockk 来模拟这样的界面:
val a = mockk<InterfaceName>(relaxed = false, relaxUnitFun = false)
接口包含这个声明:
fun method(): String
然后我尝试使用
CallObjectMethodV
从 JNI 调用此方法
当用实现接口的实际类更改
mockk<InterfaceName>
时,应用程序可以工作。
否则失败并出现以下错误:
Abort message: 'JNI DETECTED ERROR IN APPLICATION: the return type of CallObjectMethodV does not match java.lang.String packagename.InterfaceName.method()
我认为问题是mockk使用
kotlin.String
而JNI使用java.lang.String
,但这不是问题。