Versucht, jackpals Terminal-Emulator zu forschen

Andre99 07/01/2017. 1 answers, 34 views
java android android c++ android-ndk android-ndk jni

Ich versuche, Jackpals Quellcode zu nehmen, um meine App zu verbessern, aber ich kann nicht erkennen, wie es funktioniert.

Dies sind einige Zeilen in TermExec.java

public class TermExec {

static {
    System.loadLibrary("jackpal-termexec2");
} 

Also, warum ist es "jackpal-termexec2", wenn die Bibliothek, die ich denke, er heißt "termExec.cpp" heißt?

Wie auch immer, keiner von ihnen hat funktioniert, ich habe sie beide ausprobiert (System.loadLibrary ("termExec"), aber ich habe einen UnbefriedigtenLinkError bekommen

Das ist mein app / src / main / cpp-Ordner:
common.cpp
common.h
fileCompat.cpp
fileCompat.h
process.cpp
prozess.h
termExec.cpp
termExec.h

und meine CMakeLists.txt (allerdings habe ich in Jackpals Projekt keine CMakeLists.txt Datei gefunden)

cmake_minimum_required(VERSION 3.4.1)

add_library( # Specifies the name of the library.
         common

         # Sets the library as a shared library.
         SHARED

         # Provides a relative path to your source file(s).
         src/main/cpp/common.cpp )

add_library( # Specifies the name of the library.
         fileCompat

         # Sets the library as a shared library.
         SHARED

         # Provides a relative path to your source file(s).
         src/main/cpp/fileCompat.cpp )

add_library( # Specifies the name of the library.
         process

         # Sets the library as a shared library.
         SHARED

         # Provides a relative path to your source file(s).
         src/main/cpp/process.cpp )



add_library( # Specifies the name of the library.
         termExec

         # Sets the library as a shared library.
         SHARED

         # Provides a relative path to your source file(s).
         src/main/cpp/termExec.cpp )

include_directories(src/main/cpp/) 

1 Answers


Surge1223 07/29/2017.

Mein Rat ist, sich nur auf den Begriff Modul zu konzentrieren, ich habe gerade meine Gabel auf O aktualisiert

https://github.com/Surge1223/Android-Terminal-Emulator.git

Ich empfehle die Verwendung von "android.deprecatedNdkCompileLease = 1501314830007" anstelle von CMAKE. Wenn aosp gerrit sich nicht von ihrem derzeitigen Plan des Aufbaus von NdK-Bibliotheken entfernen wird, sehe ich keinen Sinn darin, die kastrierte Form auf dem Ndk-Gebäude im Studio zu verwenden. vor allem angesichts der schrecklichen Dokumentation über die Unterstützung von ndk im Studio im Allgemeinen.

Die meisten Leute haben Probleme, das Hallo-Jni trotzdem zu bauen. Wie auch immer, Sie werden versuchen, den unbefriedigten Linker-Fehler zu posten, und der Name der Lib hängt nicht vom Namen der Quelldateien ab.

Ich weiß, dass ich einen sehr schrecklichen Job gemacht habe, die Quelle zu aktualisieren, aber es funktioniert auf dem neuesten Kanarienvogel mit der neuesten Version von Gravel.

Related questions

Hot questions

Language

Popular Tags