0
で存在している私はJavaのクラスを持っているNoSuchFieldErrorエラーJNI:はっきりフィールドが正しい署名
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;
私はすでにアプリケーションをクリーニングして再構築しており、これを取得しています。 これは、常に動作していて何とか停止したコードであり、クラスにはまったく変更はありません。私はどこにでも釘付けにならなかったことを確かめるためにリセットしましたが、nada。それでも同じエラーが発生します。
私は、渡されたオブジェクトが正しいことを確認するために、アプリケーションをデバッグしました。クラスが正しく、bField
は正しくピックアップされますが、aField
はエラーをスローします。
ArrayList<SomeClass>
をArrayList
に変更しようとしましたが、何も変更されていません。
私はそれでかなり迷っています。どうしてこれが起こるか考えていますか?
神様..あなたは正しいです!もちろん。面白いこと:1つのタブレット[Android 7]でドットで動作し、別のタブレットでは動作しません[Android 4] – Krystian