从Android Studio 1.3开始,应该可以在声明native
方法后立即自动生成JNI存根,而无需使用javah
。
此处示例:(来自http://ph0b.com/new-android-studio-ndk-support/)
我无法
我正在使用:
plugin: 'com.android.model.application'
中的build.gradle
; classpath "com.android.tools.build:gradle-experimental:0.2.1"
范围内的项目build.gradle
中的dependancies
; distributionUrl=https\://services.gradle.org/distributions/gradle-2.5-all.zip
gradle-wrapper.properties
;
Gradle 2.5
。我的NDK范围如下:
android.ndk {
moduleName = "MyJNILibrary"
cppFlags += "-std=c++11"
stl = 'gnustl_shared'
}
最后,包含JNI调用的类:
package modules.jni;
public class JniClass {
static {
System.loadLibrary("MyJNILibrary");
}
public static native String getStringFromJNI();
}
那就是它。我做错了什么?
我甚至无法使用javah,因为它在项目src
目录中找不到我的类文件:
" C:\ Program Files \ Java \ jdk1.8.0_31 \ bin \ javah.exe" -d ./jni-classpath C:\ Android的SDK \平台\ Android的23 \的android.jar; ... \编译\中间体\类\调试 modules.jni.JniClass
Error: Could not find class file for 'JniClass'.
更新1:
我的错误,在上述命令行中,我使用...\
这是错误的,因为它应该是..\
所以我可以在此期间使用javah
。