Memanggil Kaedah Java daripada C dalam Android
Dalam konteks Java Native Interface (JNI) dalam Android, adalah mungkin untuk menggunakan Java kaedah daripada kod C semasa pelaksanaan kaedah asli yang dipanggil dari Java. Berikut ialah analisis terperinci bagi coretan kod yang anda berikan, menyerlahkan isu dan menyediakan penyelesaian:
Masalah:
Kod asli anda sedang cuba memanggil kaedah "messageMe" daripada kelas "the/package/MainActivity" menggunakan fungsi "CallObjectMethod". Walau bagaimanapun, mesej ralat "java.lang.NoSuchMethodError: messageMe" menunjukkan bahawa kaedah itu tidak dijumpai.
Analisis:
Isunya terletak pada cara anda menghantar objek kepada fungsi "CallObjectMethod". Dalam kod anda, anda menghantar objek "jstr", yang merupakan rentetan Java, bukannya objek "obj", yang merupakan contoh kelas MainActivity.
Penyelesaian:
Untuk memanggil kaedah objek daripada C , anda perlu menghantar objek itu sendiri ke fungsi "CallObjectMethod". Kod yang diperbetulkan di bawah menunjukkan pengubahsuaian:
<code class="c++">jobject result = env->CallObjectMethod(obj, messageMe, jstr);</code>
Nota Tambahan:
Dengan menangani isu yang diterangkan di atas, anda sepatutnya berjaya memanggil kaedah Java daripada C dalam aplikasi Android anda.
Atas ialah kandungan terperinci Bagaimana Untuk Memanggil Kaedah Java Dengan Betul Dari C dalam Android Menggunakan JNI?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!