NDK支持是一个实验性function,Android Studio中还没有支持所有的用例错误?

我想将NDK集成到Android Studio中,但是我面对NDK支持是一个实验性function,并且用例还不支持error.I已经使用SDKpipe理器下载了NDK,并且NDK被触发了C:\ Users \ TheAppData \ Local \的Android \ SDK \ NDK束。 我还为Java和C ++交互创build了NativePanorama java类。 这是NativePanorama.java类的代码

public class NativePanorama { public native static void processPanorama(long[] imageAddressArray, long outputAddress); { } } 

我在terminal中使用了javah命令,为NativePanorama java类中的processPanorama方法创build相应的C ++头文件。 这里是创build的com_example_the_myapplication_NativePanorama.h c ++头文件。

 /* DO NOT EDIT THIS FILE - it is machine generated */ #include <jni.h> /* Header for class com_example_the_myapplication_NativePanorama */ #ifndef _Included_com_example_the_myapplication_NativePanorama #define _Included_com_example_the_myapplication_NativePanorama #ifdef __cplusplus extern "C" { #endif /* * Class: com_example_the_myapplication_NativePanorama * Method: processPanorama * Signature: ([JJ)V */ JNIEXPORT void JNICALL Java_com_example_the_myapplication_NativePanorama_processPanorama (JNIEnv *, jclass, jlongArray, jlong); #ifdef __cplusplus } #endif #endif 

这里也是com_example_the_myapplication_NativePanorama.cpp c ++源文件。

 #include "com_example_panorama_NativePanorama.h" JNIEXPORT void JNICALL Java_com_example_panorama_NativePanorama_processPanorama (JNIEnv * env, jclass clazz, jlongArray imageAddressArray, jlong outputAddress){ } 

可能是错误是在build.gradle文件这里是我的build.gradle(应用程序)文件

 import org.apache.tools.ant.taskdefs.condition.Os apply plugin: 'com.android.application' android { compileSdkVersion 23 buildToolsVersion "23.0.3" defaultConfig { applicationId "com.example.the.myapplication" minSdkVersion 19 targetSdkVersion 23 versionCode 1 versionName "1.0" } // begin NDK OPENCV sourceSets.main { jni.srcDirs = [] //disable automatic ndk-build call } task ndkBuild(type: Exec, description: 'Compile JNI source via NDK') { def rootDir = project.rootDir def localProperties = new File(rootDir, "local.properties") Properties properties = new Properties() localProperties.withInputStream { instr -> properties.load(instr) } def ndkDir = properties.getProperty('ndk.dir') if (Os.isFamily(Os.FAMILY_WINDOWS)) { commandLine "$ndkDir\\ndk-build.cmd", 'NDK_PROJECT_PATH=build/intermediates/ndk', 'NDK_LIBS_OUT=src/main/jniLibs', 'APP_BUILD_SCRIPT=src/main/jni/Android.mk', 'NDK_APPLICATION_MK=src/main/jni/Application.mk' } else { commandLine "$ndkDir/ndk-build", 'NDK_PROJECT_PATH=build/intermediates/ndk', 'NDK_LIBS_OUT=src/main/jniLibs', 'APP_BUILD_SCRIPT=src/main/jni/Android.mk', 'NDK_APPLICATION_MK=src/main/jni/Application.mk' } } tasks.withType(JavaCompile) { compileTask -> compileTask.dependsOn ndkBuild } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } } dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) testCompile 'junit:junit:4.12' compile 'com.android.support:appcompat-v7:23.4.0' compile project(":opencv-java") } 

在java中也有Reports本地方法声明,在NativePanorama.java类的项目错误中找不到对应的jni函数。

我如何解决这些问题?

Solutions Collecting From Web of "NDK支持是一个实验性function,Android Studio中还没有支持所有的用例错误?"

这是解决scheme:

将您的Android Studio更新为最新版本或最新的公开预发布版本。

Android Studio 2.2.1是目前最新的版本,它具有合适的C ++支持。他们仍然在努力,有些东西可能仍然不被支持,但是使用C ++可以更好地在更新的版本上工作。 当然也要确保你的Android SDK保持最新状态。