如何返回Kotlin/本机字符串?

如何返回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" } }

我构建了一个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"
    }
}
那么我的应用程序代码是

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
的用法示例