Wie Bestehende .so-Datei in der android-Anwendung
War ich auf der Suche für die Bibliothek, die sollten konvertieren .doc/.docx zu .das pdf-Format in android-Plattform.
Bekam ich PdFTron android sdk,das Sie gegeben haben libPDFNetC.damit die Datei.
Für die Konvertierung, es ist Klasse namens Convert, innen, dass es eine Methode toPDF(),
in dieser Methode haben Sie intern als native Methode FileToPdf().Ich habe versucht, der code aber nicht in der Lage zu nennen, dass die native Methode und wurde immer Fehler
Ich will wissen, dass wenn es bereits eine .so-Datei vorhanden ist mit Ihnen und wenn Sie möchten, rufen Sie die native Methode, die vorhanden ist .also die Datei gibt es dann verwenden müssen, JNI?. ich weiß nicht viel über JNI. jegliche Hilfe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Haben Sie verknüpfen Ihre Letzte gemeinsame Bibliothek, die generiert wird, indem Sie das Android NDK mit der
ndk-build
zur gemeinsamen PDF-Bibliothek, die Sie sagte , die Sie bereits zusammengestellt haben, der für die ARM-Architektur.(Sicherzustellen, dass dies der Fall ist, da sonst die Bibliothek funktioniert nicht auf Android!)
Dafür, wenn zum Beispiel, Sie haben folgende Verzeichnisstruktur:
Müssen Sie die folgenden Inhalte in der Android.mk Datei:
und die Inhalte der Anwendung.mk - Datei (für die Verwendung der C++ - Standard-Library, und erstellen Sie das das Letzte gemeinsame Bibliothek für zwei unterschiedliche Versionen der ARM-Architektur):
Dann, nachdem Sie Ihren code kompilieren von Eclipse oder von der Befehlszeile aus mithilfe der ndk-build Skript, er werde kompilieren Sie die Letzte geteilte Bibliothek, und verbinden Sie es gegen Ihre vorgefertigte shared library (D. H. die PDF-Datei der gemeinsamen Bibliothek, Sie sagten, Sie versuchen, zu verwenden).
Für shared-libraries, die apk, die erzeugt und bereitgestellt, um das Gerät/emulator enthält die endgültige shared-library, sowie alle vordefinierten freigegebenen Bibliotheken Sie gelinkt gegen, im Vergleich mit der Verlinkung gegen statische Bibliotheken, die nicht gebündelt innerhalb der apk.
Für Ihren Anwendungsfall sollten Sie zwei gemeinsam genutzte Bibliotheken in das lib-Verzeichnis Ihrer Android-Anwendung, nachdem die apk entpackt, auf das Gerät.
Sie können dies überprüfen, indem Sie den folgenden Befehl in einem terminal aus:
Ersetzen Sie com.Unternehmen.Anwendung mit der Anwendung Paket-Namen.
Auch, vergessen Sie nicht, setzen Sie den folgenden innerhalb einer statischen Kontext einer Java-Klasse:
Beachten Sie die Verwendung der gleichen Namen innerhalb des Systems.loadLibrary-Methode rufen Sie die endgültige shared library name.
Müssen Sie sicherstellen, dass die .also die Datei, die Karten für die native-Schnittstelle auf Ihrem system verfügbar ist, und können gefunden werden, die von Java.
Es sollte ein Aufruf wie
System.loadLibrary("<libraryname>")
oderSystem.load("/path/to/libs/lib<libraryname>.so")
irgendwo in Ihrem Java-code.Das anweisen wird, die JVM um die Suche nach der Bibliothek mit dem angegebenen Namen und laden Sie es.
System.load("/path/to/libs/lib<libraryname>.so")
wird nur die angegebene Datei als argument, und laden Sie es.System.loadLibrary("<libraryname.")
Aussehen wird in den konfigurierten Pfad für eine Bibliothek-Bibliothek mit dem Namenlib<libraryname>.so
. Die Bibliothek Weg ist aus dem system entnommen variablejava.library.path
.Stellen Sie außerdem sicher, dass die library-version, die Sie laden, ist kompatibel mit der Java JNI mapping!
Arbeiten ndk , es ist ein .mk (make-Datei), die erfüllt ist unter JNI zu bekommen .damit die Datei.
.mk-Datei geschrieben, in der native code mit c /c++ - snippet.
Nun kompilieren Sie mit JNI , gibt es zwei gängige Möglichkeiten:
1.Während der Arbeit alte ADT + SDK-Versionen:
Sie benötigen eine linux-Umgebung konfiguriert werden, auf der windows-Konfiguration für den Betrieb der JNI-Befehle auf der shell. Diese Umgebung kann erreicht werden durch verschiedene software auf Netto wie cygwin setup.
2.Wenn die ADT + SDK-Versionen, die Sie verwenden, werden aktualisiert:
Dann gibt es ein NDK das Stopfen erhältlich in ADT sich . So ist es einfacher, mit zu arbeiten auf der ndk und der nativen Bibliothek.
Für mehr details auf NDK finden Sie hier