我有一个java类:
XmlObjectSerializer
我尝试以这种方式使用它:
public class ClassOne implements Serializable {
private String bField;
private ArrayList<SomeClass> aField = new ArrayList<SomeClass>();
}
我收到此错误:
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;");
...
我已经清理并重建了应用程序,并且我一直这样做。 这是一个始终工作并以某种方式停止的代码,根本没有对类进行任何更改。我做了git重置以确保我没有搞砸到任何地方,但是nada。它仍然会引发同样的错误。
我调试了应用程序,以确保传递的对象是正确的,它们是。该类正确, java.lang.NoSuchFieldError: no field with name='aField' signature='Ljava.util.ArrayList;' in class LClassOne;
被正确选取,但bField
会引发错误。
我尝试将aField
更改为ArrayList<SomeClass>
,但它没有改变任何内容。
我很遗憾,你知道为什么会这样吗?
答案 0 :(得分:2)
描述符应为&#34; Ljava / util / ArrayList;&#34;。斜线而不是点。