2016-06-27 10 views
2

Ich arbeite an einem Android APP Projekt mit JNI. Ich habe eine Quelle des Projekts, aber ich habe nur .so-Datei und die .java-Datei der Quelle. Wie kann ich die JNI-Funktion ohne die C++ - Quelldatei verwenden?JNI ohne C++ Quelldatei

enter image description here

Antwort

2

Wenn Sie die Java-Klasse, die diese .so Schnittstellen, die Sie nicht benötigen C++ Quellen, es zu benutzen. Sie können sogar die nativen Methoden von protected zu public ändern, wenn Sie Java-Wrapper-Methoden benötigen oder hinzufügen, die die Verwendung der nativen Methoden erleichtern. Stellen Sie sicher, dass Ihre Datei .so mit der Plattform übereinstimmt (z. B. können Sie keine x86-Bibliothek auf ARM-Geräten verwenden). Ihr .so muss mit einer kompatiblen Toolchain kompiliert worden sein (z. B. können Sie keinen Linux-Compiler verwenden). Und wenn Ihre .so für bestimmte Plattform gebaut wurde, kann es auf älteren Geräten nicht geladen werden: NDK-Plattformen sind kompatibel vorwärts, nicht rückwärts.

+0

Vielen Dank für Ihre Hilfe! aber das android studio verlangt von mir die implementierung der JNI funktion. was soll ich tun ?? –

+0

Sie können diese Überprüfung deaktivieren, indem Sie Einstellungen> Inspektionen> Android> "Fehlende JNI-Funktion" deaktivieren. Aber dann müssen Sie sicherstellen, dass die native lib korrekt vorbereitet ist. –

+0

"Sie müssen sicherstellen, dass die native lib korrekt vorbereitet ist." Ich denke, das ist mein Hauptproblem –