Cercando di forgiare l'emulatore di terminale di jackpal

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

Sto cercando di prendere il codice sorgente di Jackpal per migliorare la mia app, ma non riesco a capire come farlo funzionare.

Queste sono alcune linee in TermExec.java

public class TermExec {

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

Quindi, perché è "jackpal-termexec2" quando la libreria che immagino abbia significato viene chiamata "termExec.cpp"?

Comunque, nessuno di loro ha funzionato, li ho provati entrambi (System.loadLibrary ("termExec"), ma ho ricevuto un UnsatisfiedLinkError

Questa è la mia cartella app / src / main / cpp:
common.cpp
COMMON.H
fileCompat.cpp
fileCompat.h
process.cpp
process.h
termExec.cpp
termExec.h

e il mio CMakeLists.txt (tuttavia, non ho trovato un file CMakeLists.txt nel progetto di jackpal)

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.

il mio consiglio è di concentrarmi solo sul modulo dei termini, ho appena aggiornato la mia forcella su O

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

Raccomando di utilizzare "android.deprecatedNdkCompileLease = 1501314830007" anziché CMAKE. A meno che Aosp Gerrit non stia iniziando a spostarsi dal loro attuale schema di costruzione di librerie ndk, non vedo davvero un punto nell'usare il modulo castrato su ndk in studio. soprattutto considerando l'orribile documentazione sul supporto di ndk in studio in generale.

la maggior parte delle persone ha problemi a ottenere la ciao-jni per costruire comunque. In ogni caso, i probs vogliono pubblicare l'errore del linker non soddisfatto, e il nome della lib non dipende dal nome dei file sorgente.

So di aver fatto un lavoro molto orribile di aggiornamento dell'origine, ma funziona su canarino più recente con l'ultima versione gradle disponibile.

Related questions

Hot questions

Language

Popular Tags