相关疑难解决方法(0)

无法在任意上下文中获取JNIEnv*值

我有NDK的问题.

在我的JNI_OnLoad方法中,我缓存了JavaVm指针,调用该方法的类以及稍后使用的方法ID:

JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *jvm, void *reserved){
    JNIEnv *env;
    cachedJVM = jvm;
    if((*jvm)->GetEnv(jvm, (void**)&env, JNI_VERSION_1_6)){
        LOG_ERROR("Could not get JNIEnv*");
        return JNI_ERR;
    }
    javaClass = (*env)->FindClass(env, "org/test/opensl/AudioProcessor");
    if(javaClass == NULL){
        LOG_ERROR("Could not get java class");
        return JNI_ERR;
    }
    javaCallbackMID = (*env)->GetMethodID(env, javaClass, "enqueueAudio", "([B)V");
    if(javaCallbackMID == NULL){
        LOG_ERROR("Could not get method identifier");
        return JNI_ERR;
    }
    return JNI_VERSION_1_6;
}
Run Code Online (Sandbox Code Playgroud)

我有一个小的实用程序方法定义如下,应该给我一个指向JNIEnv的指针:

JNIEnv* JNU_GetEnv(){
    JNIEnv* env;
    (*cachedJVM)->GetEnv(cachedJVM, (void**)&env, JNI_VERSION_1_6);
    return env;
}
Run Code Online (Sandbox Code Playgroud)

最后,我有一个来自OpenSL ES的回调SLAndroidSimpleBufferQueueItf,我想从以下处理录制的音频SLRecordItf:

void recorderCallback(SLAndroidSimpleBufferQueueItf bq, void …
Run Code Online (Sandbox Code Playgroud)

c java-native-interface android android-ndk

5
推荐指数
1
解决办法
6984
查看次数

对象数组数组(二维数组)JNI

我正在努力创建我的自定义对象类型ShareStruct的二维数组:

jobjectArray ret ;
jobjectArray ins ;
jobjectArray outs;

jclass myClass = (*env)->FindClass(env,"org/apache/s4/core/ShareStruct");
if (myClass==NULL) fprintf(stderr, "Class ShareStruct not found");

jclass myClassArray = (*env)->FindClass(env, "[Lorg/apache/s4/core/ShareStruct");
if (myClassArray==NULL) fprintf(stderr, "Class ShareStruct[] not found");

ins = (*env)->NewObjectArray(env, in, myClass, NULL);
outs = (*env)->NewObjectArray(env, out, myClass, NULL);
ret = (*env)->NewObjectArray(env, 2, myClassArray, NULL);
Run Code Online (Sandbox Code Playgroud)

第一个类加载有效(ShareStruct很好),而另一个(尝试加载ShareStruct []类)则无效。我已经尝试过带或不带L,但没有运气。有任何想法吗?我是JNI的新手。

谢谢!

java arrays java-native-interface

0
推荐指数
1
解决办法
8455
查看次数

标签 统计

java-native-interface ×2

android ×1

android-ndk ×1

arrays ×1

c ×1

java ×1