Android:如何从Kotlin调用ndk函数?
这段代码适用于Java。 但是在迁移到Kotlin之后,编译器higlits方法native fun stringFromNative(): String
as error with following text:
没有身体的功能必须是抽象的
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) Toast.makeText(this, stringFromNative(), Toast.LENGTH_LONG).show() } companion object { init { System.loadLibrary("_ndkkt") } native fun stringFromNative(): String } }
谢谢@KenVanHoeylandt!
Andswer是:
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) Toast.makeText(this, stringFromNative(), Toast.LENGTH_LONG).show() } init { System.loadLibrary("_ndkkt") } external fun getStringFromNative(): String } }
将external fun stringFromNative(): String
放在随external fun stringFromNative(): String
对象之外,并放入MainActivity
。
(我通过查看https://github.com/ligee/kotlin-ndk-samples找到答案)