Android ndk вызов Java-метода имеют ошибку sigsegv, неверный размер аргумента 4096 - PullRequest
0 голосов
/ 24 апреля 2018

AttachCurrentThread метод падает с этой ошибкой, Я использую:

static JavaVM *g_jvm;

JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM* vm, void* reserved) {
    g_jvm = vm;
    JNIEnv *env;
    return JNI_VERSION_1_4;
}

void treadmileCallback(SearchResult result) {
    JNIEnv *env;
    jint i = (*g_jvm)->GetEnv(g_jvm, &env, JNI_VERSION_1_4);
    if( i == JNI_EDETACHED) {
    }

    (*g_jvm)->AttachCurrentThread(g_jvm, &env, NULL);
    .....
}

A/art: art/runtime/thread.cc:2950] **Unable to create protected region
 in stack for implicit overflow check.
 Reason: Invalid argument size:  4096**

A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0xb8 in tid 5645 (ngiot.sdk.xqiao)
[ 04-25 02:49:22.472  1058: 1058 W/]debuggerd: handling request: pid=5627 uid=10251 gid=10251 tid=5645

Android Studio:3.0.1
Android version:7.1.1

Большое спасибо, я не знаю, как решить эту проблему, ничего.

...