如何返回Kotlin/本机字符串?
我构建了一个Kotlin/Native项目如何返回Kotlin/本机字符串?,kotlin,kotlin-multiplatform,kotlin-native,Kotlin,Kotlin Multiplatform,Kotlin Native,我构建了一个Kotlin/Native项目 我的androidMain代码是 class MyTest { @CName("Java_sample_MyTest_callMe") fun callMe(): Int { return 99 } @CName("Java_sample_MyTest_callHello") fun callHello(): String { return "MyBook" } }
我的androidMain代码是
class MyTest {
@CName("Java_sample_MyTest_callMe")
fun callMe(): Int {
return 99
}
@CName("Java_sample_MyTest_callHello")
fun callHello(): String {
return "MyBook"
}
}
那么我的应用程序代码是
class MyTest {
companion object {
init {
System.loadLibrary("AndroidNative64")
}
}
external fun callMe(): Int
external fun callHello(): String
}
叫它
// OK
val v2 = "" + MyTest().callMe()
Log.d("TAG", v2)
// Error
val v3 = MyTest().callHello()
Log.d("TAG", v3)
错误消息是
invalid reference returned from java.lang.String sample.MyTest.callHello()
如何修复它非常感谢您为什么在v3已经是字符串类型的情况下调用
.toString()
?而且我认为您使用@CName
注释的方式是错误的,因为它是为顶级函数而不是为类成员创建的。可以找到@CName
用法的示例,为什么在v3已经是字符串类型时调用.toString()
?而且我认为您使用@CName
注释的方式是错误的,因为它是为顶级函数而不是为类成员创建的。可以找到@CName
的用法示例