首页 > 解决方案 > 如何返回 Kotlin/本机字符串?

问题描述

我构建了一个 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()

如何解决它
非常感谢你

标签: kotlinkotlin-multiplatformkotlin-native

解决方案


推荐阅读