我是kotlin的新手,我已经成功配置了NDK与Android Studio(没有kotlin),即在java中。
但是现在google已经推出了kotlin,所以我希望通过NDK支持将我现有的项目改为kotlin。
这是我的java代码
static
{
System.loadLibrary("native-lib");
}
public native String stringFromJNI(int i);
请帮我看看如何在kotlin中执行相同的代码
答案 0 :(得分:0)
您可以在媒体上阅读此文章:Android NDK: Interaction of Kotlin and C/C++
在本文中,作者了解了如何使Kotlin与C / C ++进行通信。
例如:
Kotlin代码:
class Store {
companion object {
init {
System.loadLibrary("Store")
}
}
@Throws(IllegalArgumentException::class)
external fun getString(pKey: String): String
}
C ++代码:
extern "C"
JNIEXPORT void JNICALL
Java_com_ihorkucherenko_storage_Store_setString(
JNIEnv* pEnv,
jobject pThis,
jstring pKey,
jstring pString) {
StoreEntry* entry = allocateEntry(pEnv, &gStore, pKey);
if (entry != NULL) {
entry->mType = StoreType_String;
jsize stringLength = pEnv->GetStringUTFLength(pString);
entry->mValue.mString = new char[stringLength + 1];
pEnv->GetStringUTFRegion(pString, 0, stringLength, entry->mValue.mString);
entry->mValue.mString[stringLength] = '\0';
}
}
此处的示例:https://github.com/KucherenkoIhor/KotlinWithAndroidNdk