如何在Android Studio 3.0中使用Kotlin配置NDK

时间:2017-07-14 08:47:01

标签: android android-studio android-ndk kotlin

我是kotlin的新手,我已经成功配置了NDK与Android Studio(没有kotlin),即在java中。

但是现在google已经推出了kotlin,所以我希望通过NDK支持将我现有的项目改为kotlin。

这是我的java代码

 static
 {
     System.loadLibrary("native-lib");
 }
 public native String stringFromJNI(int i);

请帮我看看如何在kotlin中执行相同的代码

1 个答案:

答案 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