Android 为什么这个简单的JNI对象构造会导致VM中止和SIGSEGV?

Android 为什么这个简单的JNI对象构造会导致VM中止和SIGSEGV?,android,android-ndk,java-native-interface,Android,Android Ndk,Java Native Interface,类别: JNI代码段: package com.example.foo; public class Dummy { int value; public Dummy(int value) { this.value = value; } } NewObject()需要类对象指针作为第二个参数。构造函数方法ID是第三个参数。改写如下: 09-03 11:02:02.937: W/dalvikvm(2179): Invalid indirect

类别:

JNI代码段:

package com.example.foo;

public class Dummy
{
    int value;

    public Dummy(int value)
    {
        this.value = value;
    }   
}
NewObject()
需要类对象指针作为第二个参数。构造函数方法ID是第三个参数。改写如下:

09-03 11:02:02.937: W/dalvikvm(2179): Invalid indirect reference 0x44e9cf80 in decodeIndirectRef
09-03 11:02:02.937: E/dalvikvm(2179): VM aborting
09-03 11:02:02.937: A/libc(2179): Fatal signal 11 (SIGSEGV) at 0xdeadd00d (code=1), thread 2179

其中17是构造函数的参数。

17
在这里意味着什么?同样的零在OP的
NewObject()
行中-构造函数的任意整数参数。
09-03 11:02:02.937: W/dalvikvm(2179): Invalid indirect reference 0x44e9cf80 in decodeIndirectRef
09-03 11:02:02.937: E/dalvikvm(2179): VM aborting
09-03 11:02:02.937: A/libc(2179): Fatal signal 11 (SIGSEGV) at 0xdeadd00d (code=1), thread 2179
jobject object = (*jni_env)->NewObject(jni_env, class, constructor, 17);