2017-07-14 152 views
0

我是kotlin的新手,我已經用Android Studio(不包括kotlin)成功配置NDK,即在java中。如何在Android Studio 3.0中使用Kotlin配置NDK

但現在谷歌已經引入kotlin所以我想改變我現有的項目kotlin與NDK支持。

這是我的java代碼

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

請幫助我如何做同樣的代碼在科特林

+0

你嘗試除了設立科特林NDK?這樣做時你遇到任何問題嗎? – zsmb13

+0

你讀過了:https://developer.android.com/kotlin/faq.html –

+0

@ zsmb13是的我已經安裝了沒有任何錯誤 – jarvis

回答

0

你可以閱讀中這個帖子:Android NDK: Interaction of Kotlin and C/C++

在這篇文章中,筆者看到了如何讓Kotlin與C/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'; 
    } 
} 

樣品:

class Store { 

    companion object { 
     init { 
      System.loadLibrary("Store") 
     } 
    } 

    @Throws(IllegalArgumentException::class) 
    external fun getString(pKey: String): String 
} 

C++代碼https://github.com/KucherenkoIhor/KotlinWithAndroidNdk

相關問題