# How to configure gradle when use jni and kotlin in project

**URL:** <https://discuss.kotlinlang.org/t/how-to-configure-gradle-when-use-jni-and-kotlin-in-project/1998>\
**Category:** Android\
**Created:** [September 29, 2016, 3:00am UTC](https://discuss.kotlinlang.org/t/how-to-configure-gradle-when-use-jni-and-kotlin-in-project/1998 "2016-09-29T03:00:00Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![monkey](https://avatars.discourse-cdn.com/v4/letter/m/e79b87/32.png) [@monkey](https://discuss.kotlinlang.org/u/monkey)\
**Post date:** [September 29, 2016, 3:00am UTC](https://discuss.kotlinlang.org/t/how-to-configure-gradle-when-use-jni-and-kotlin-in-project/1998/1 "2016-09-29T03:00:00Z")

</div>

I want to wirte c/c++ code in android project，so use com.android.tools.build:gradle-experimental instead of com.android.tools.build:gradle, When configure kotlin in project then get an error message。  
Error:(2, 0) Extension with name ‘android’ does not exist. Currently registered extension names: [ext, defaultArtifacts, reporting, buildTypes, flavors, toolChains]  
Open File

---

<div class="post-metadata">

**Author:** ![yole](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/yole/32/1425_2.png) [@yole](https://discuss.kotlinlang.org/u/yole)\
**Post date:** [September 29, 2016, 11:04am UTC](https://discuss.kotlinlang.org/t/how-to-configure-gradle-when-use-jni-and-kotlin-in-project/1998/2 "2016-09-29T11:04:44Z")

</div>

The gradle-experimental plugin is not supported at this time. You’re welcome to file a feature request for its support.

---

<div class="post-metadata">

**Author:** ![mezzilt](https://avatars.discourse-cdn.com/v4/letter/m/258eb7/32.png) [@mezzilt](https://discuss.kotlinlang.org/u/mezzilt)\
**Post date:** [October 6, 2016, 7:45am UTC](https://discuss.kotlinlang.org/t/how-to-configure-gradle-when-use-jni-and-kotlin-in-project/1998/3 "2016-10-06T07:45:04Z")

</div>

Try to use com.android.tools.build:gradle:2.2.0

I have used it for external build with cmake

defaultConfig {  
…  
externalNativeBuild {  
cmake {  
abiFilters ‘x86’, ‘x86\_64’, ‘armeabi’, ‘armeabi-v7a’, ‘arm64-v8a’  
}  
}  
…  
}

```
externalNativeBuild {
    cmake {
        path "src/main/cpp/CMakeLists.txt"
    }
}

```

---

<div class="post-metadata">

**Author:** ![anton.derevyanko](https://sea1.discourse-cdn.com/flex019/user_avatar/discuss.kotlinlang.org/anton.derevyanko/32/1964_2.png) [@anton.derevyanko](https://discuss.kotlinlang.org/u/anton.derevyanko)\
**Post date:** [December 12, 2016, 9:28pm UTC](https://discuss.kotlinlang.org/t/how-to-configure-gradle-when-use-jni-and-kotlin-in-project/1998/4 "2016-12-12T21:28:19Z")

</div>

By the way, how are you loading native library? I’ve found only one working approach - to create  
class NativeSample {  
init {  
System.loadLibrary(“native-lib-my”)  
}  
external fun stringLogcat(logThis: String)  
}  
But this forces me to set a strange name of the jni function:  
`Java_(package)_(activity)_00024NativeSample_stringLogcat(...)`  
the strange part is additional 00024 digits…
