在Android 中從C 呼叫Java 方法
在Android 中的Java 本機介面(JNI) 上下文中,可以呼叫Java在上下文中執行從Java 呼叫的本機方法期間從C 程式碼中取得方法。以下是您提供的程式碼片段的詳細分析,突出顯示了問題並提供了解決方案:
問題:
您的本機程式碼正在嘗試從「/package /MainActivity」類別使用「CallObjectMethod」函數。但是,錯誤訊息「java.lang.NoSuchMethodError: messageMe」表示找不到該方法。
分析:
問題在於您傳遞物件的方式到「CallObjectMethod」函數。在您的程式碼中,您傳遞的是 Java 字串「jstr」對象,而不是 MainActivity 類別的實例「obj」物件。
解決方案:
要從 C 呼叫物件方法,您需要將物件本身傳遞給「CallObjectMethod」函數。下面更正後的程式碼顯示了修改:
<code class="c++">jobject result = env->CallObjectMethod(obj, messageMe, jstr);</code>
附加說明:
透過解決上述問題,您應該能夠成功呼叫 Java Android 應用程式中來自 C 的方法。
以上是如何在 Android 中使用 JNI 正確從 C 呼叫 Java 方法?的詳細內容。更多資訊請關注PHP中文網其他相關文章!