gpt4 book ai didi

java - JNI : NoSuchFieldError error where clearly the field exists with correct signature

转载 作者:行者123 更新时间:2023-12-02 02:56:51 25 4
gpt4 key购买 nike

我有一个java类:

public class ClassOne implements Serializable {
private String bField;
private ArrayList<SomeClass> aField = new ArrayList<SomeClass>();
}

我尝试以这种方式在 C 中使用它:

jlong
Java_ClassJNI_getArrayContent( JNIEnv* env, jobject this,
jobject argument, jlong handle, jint isFirst) {

jfieldID fid_bField, fid_aField;
jclass cls = (*env)->GetObjectClass(env, argument);
fid_bField = (*env)->GetFieldID(env, cls, "bField", "Ljava/lang/String;");
fid_aField = (*env)->GetFieldID(env, cls, "aField", "Ljava.util.ArrayList;");

...

我收到此错误:

   java.lang.NoSuchFieldError: no field with name='aField' signature='Ljava.util.ArrayList;' in class LClassOne;

我已经清理并重建了应用程序,并且不断收到此消息。这是一段一直有效的代码,但不知何故停止了,类没有任何变化。我做了 git Reset 以确保我没有搞砸任何地方,但什么也没有。它仍然抛出相同的错误。

我确实调试了应用程序,以确保传递的对象是正确的,而且确实如此。类(class)是正确的,bField已正确拾取,但 aField抛出错误。

我尝试更改 ArrayList<SomeClass>ArrayList但它没有改变任何事情。

我对此很困惑,你知道为什么会发生这种情况吗?

最佳答案

描述符应该是“Ljava/util/ArrayList;”。用斜杠代替点。

关于java - JNI : NoSuchFieldError error where clearly the field exists with correct signature,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42951309/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com