0
存在NoSuchFieldError錯誤我有一個Java類:JNI:其中顯然有正確的簽名
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重設,以確保我沒有在任何地方搞砸,但是nada。它仍然會拋出同樣的錯誤。
我沒有調試應用程序,以確保傳遞的對象是正確的,他們是。該類是正確的,bField
被正確拾取,但aField
引發錯誤。
我試過將ArrayList<SomeClass>
更改爲ArrayList
,但它沒有任何改變。
我很迷茫,你知道爲什麼會發生這種情況嗎?
上帝保佑你......你是對的!當然。有趣的事情:它適用於一個平板電腦上的點[Android 7],而不是另一個[Android 4]上的點。 – Krystian