使用JNI访问的本机对象的类成员意外更改值

时间:2010-12-14 14:55:24

标签: android-ndk java-native-interface

我有一个Java项目,我使用JNI使用一些C ++代码。 我遇到了一个奇怪的问题。

我有一个看起来或多或少的课程:

class MyClass
{
private:
    MyType* _p;

public:
    MyClass();

    virtual ~MyClass();

    void myFunc();
};

MyClass::MyClass() : _p(NULL) {
    // _p's value here is indeed NULL (0)
}

MyClass::~MyClass() {

}

void MyClass::myFunc() {
    if (_p != NULL) {
        delete _p;
    }

    _p = new MyType();
}

myFunc之外没有其他功能触及_p,并且出于某种原因,即使在初始化为NULL之后,第一次调用myFunc时,{{1}其中有一些垃圾值,函数试图删除它。

使用JNI调用_p的ctor,并在另外的场合使用JNI调用MyClass

非常感谢任何帮助。

0 个答案:

没有答案