Nessun JNI_OnLoad trovato in … skipping init

Ho ricevuto questo messaggio per il giorno scorso o così, e fino ad ora non ha causato un problema. Ho avuto il mio codice per eseguire con la mia biblioteca nativa prima ma oggi ho aggiunto alcune nuove funzioni e ancora non funziona.

Non ci sono errori visualizzati in LogCat, ma il mio programma viene appena aperto e chiuso immediatamente sul mio dispositivo. Non c'è alcun messaggio che dice che l'applicazione si è arrestata inaspettatamente, solo un flash nero sullo schermo.

  • dialogo tempestato di modellazione
  • SHA-1 impronta digitale del certificato chiave
  • Android - Come rendere un'icona glow sul touch?
  • Come evitare l'emulatore appendente Android getSystemService (Context.SENSOR_SERVICE)?
  • Come afferrare una tastiera "Fatto" dalla tastiera soft
  • Import SDK di Facebook su Android Studio 0.5.1
  • Ho guardato intorno a google e SO, ma ci sono così diversi motivi per questo messaggio per venire. Ecco il mio LogCat:

    08-03 10:44:50.186: D/dalvikvm(2143): Trying to load lib /data/data/my.eti.commander/lib/libRelayAPI.so 0x40514f58 08-03 10:44:50.186: D/dalvikvm(2143): Added shared lib /data/data/my.eti.commander/lib/libRelayAPI.so 0x40514f58 08-03 10:44:50.186: D/dalvikvm(2143): No JNI_OnLoad found in /data/data/my.eti.commander/lib/libRelayAPI.so 0x40514f58, skipping init 08-03 10:44:50.288: I/DEBUG(1058): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** 08-03 10:44:50.288: I/DEBUG(1058): Build fingerprint: 'LENOVO/IdeaPad_Tablet_A1_07/A1_07:2.3.4/GRJ22/eng.user.20120209.100319:user/release-keys' 

    Quello che vorrei sapere è:

    1) È questo messaggio No JNI_OnLoad che causa il mio programma non aperto?

    2) In caso affermativo, so che non ho inviato alcun codice, ma qualcuno potrebbe spiegare l'idea generale di questo messaggio. Compresi quello che init sta saltando.

    EDIT:

    Le nuove funzioni che ho aggiunto oggi sono state commentate quando questo è accaduto. Avevo originariamente ottenuto un errore diverso e volevo assicurarmi che il mio codice vecchio fosse ancora funzionante.

  • layout come il ragno
  • Regola di Threading AsyncTask - Può essere utilizzata solo una volta?
  • Proiezione posteriore in Java con OpenCV
  • perché java.exe uscire con il valore 1 nello studio android
  • Come get una notifica quando FirebaseListAdapter finisce?
  • Memorizzazione di una chiave segreta su Android
  • 2 Solutions collect form web for “Nessun JNI_OnLoad trovato in … skipping init”

    La function JNI_OnLoad non è essenziale. Quindi, se non hai fornito questa function, il programma dovrebbe essere eseguito normalmente.

    Il tuo problema viene da un'altra parte del tuo codice. Provare a usare ndk-gdb per risolvere il problema.

    Qui come @djedge ha citato JNI_OnLoad è solo un avvertimento. Probabilmente ci sono due ragioni principali per questo. Primo è qualcosa che non va nel tuo file Android.mk. Normalmente dovrebbe essere simile

      LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) OPENCV_CAMERA_MODULES:=on OPENCV_INSTALL_MODULES:=on #OPENCV_LIB_TYPE:=SHARED include D:\NDK\MyApplication3\libraries\native\jni\OpenCV.mk LOCAL_SRC_FILES := DetectionBasedTracker_jni.cpp LOCAL_C_INCLUDES += $(LOCAL_PATH) LOCAL_LDLIBS += -llog -ldl LOCAL_MODULE := detection_based_tracker include $(BUILD_SHARED_LIBRARY) 

    qui si prega di dare un'attenzione su LOCAL_SRC_FILES se viene fornito un file di origine corretto c / c ++.

    Il problema della nidificazione sarebbe costituito dalle firme delle funzioni. Se hai generato file di intestazione e le firme di funzioni dovrebbero corrispondere alle definizioni di function / metodo del file c / c ++.

    Ecco un esempio. File di intestazione

      JNIEXPORT jlong JNICALL Java_com_example_jobs_myapplication_DetectionBasedTracker_nativeCreateObject 

    (JNIEnv *, jclass, jstring, jint);

    File C ++

      JNIEXPORT jlong JNICALL Java_com_example_jobs_myapplication_DetectionBasedTracker_nativeCreateObject (JNIEnv * jenv, jclass, jstring jFileName, jint faceSize) { //code goes here... } 

    Qui il com_example_jobs_myapplication potrebbe essere errato.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.