Aufrufen von Java-Methoden aus C in Android
Im Kontext von Java Native Interface (JNI) in Android ist es möglich, Java aufzurufen Methoden aus C-Code während der Ausführung einer nativen Methode, die aus Java aufgerufen wird. Hier ist eine detaillierte Analyse eines von Ihnen bereitgestellten Codeausschnitts, in der das Problem hervorgehoben und eine Lösung bereitgestellt wird:
Problem:
Ihr nativer Code versucht, die Methode „messageMe“ aus dem aufzurufen „the/package/MainActivity“-Klasse mit der Funktion „CallObjectMethod“. Die Fehlermeldung „java.lang.NoSuchMethodError: messageMe“ weist jedoch darauf hin, dass die Methode nicht gefunden wurde.
Analyse:
Das Problem liegt in der Art und Weise, wie Sie das Objekt übergeben zur Funktion „CallObjectMethod“. In Ihrem Code übergeben Sie das „jstr“-Objekt, das eine Java-Zeichenfolge ist, anstelle des „obj“-Objekts, das die Instanz der MainActivity-Klasse ist.
Lösung:
Um Objektmethoden aus C aufzurufen, müssen Sie das Objekt selbst an die Funktion „CallObjectMethod“ übergeben. Der korrigierte Code unten zeigt die Änderung:
<code class="c++">jobject result = env->CallObjectMethod(obj, messageMe, jstr);</code>
Zusätzliche Hinweise:
Wenn Sie das oben beschriebene Problem beheben, sollten Sie in der Lage sein, Java erfolgreich aufzurufen Methoden von C in Ihrer Android-Anwendung.
Das obige ist der detaillierte Inhalt vonWie rufe ich Java-Methoden von C in Android mithilfe von JNI korrekt auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!