Android NDK - 无法使用jstring,不断崩溃

时间:2012-03-27 14:16:18

标签: android java-native-interface

我在JNI问题上度过了最后两天,这让我发疯了...... 我只是试着这样做:

  SWIGEXPORT void JNICALL Java_com_my_package_CM_1CoreJNI_CM_1Property_1name_1set(JNIEnv *jenv, jclass jcls, jlong jarg1, jobject jarg1_, jstring jarg2) {
    const char *arg2 = (*jenv)->GetStringUTFChars(jenv, jarg2, 0);
    ....
}

我通过JAR调用此函数并且它一直在崩溃。 我可以从LogCat中读到的全部内容是:

03-27 12:44:29.162: E/dalvikvm(1599): JNI ERROR (app bug): accessed stale weak global reference 0x4080f657 (index 15765 in a table of size 0)
03-27 12:44:29.172: W/dalvikvm(1599): JNI WARNING: jstring is an invalid weak global reference (0x4080f657)
03-27 12:44:29.172: W/dalvikvm(1599):              in Lcom/my/package/CM_CoreJNI;.CM_Property_name_set:(JLjava/lang/String;)V (GetStringUTFChars)

经过长时间的调查,我试图直接从我的活动中调用该函数(通过添加原生的空集......)并且工作正常! 我被封锁了,不知道该怎么做......

是否有人设法从JAR成功调用JNI?

编辑:通过删除jar并添加.java文件来修复...

0 个答案:

没有答案