Come posso colbind la libreria condivisa preinstallata al progetto Android NDK?

Qui ho usato questo file Android.mk in jni/ cartella.

 LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) # Here we give our module name and source file(s) LOCAL_MODULE := offlineDownload LOCAL_SRC_FILES := offline_download.c LOCAL_SHARED_LIBRARIES :=../lib/libpackext.so.1.0 LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog include $(BUILD_SHARED_LIBRARY) 

E fai una cartella lib nella directory del progetto e metta la mia libreria preinstallata .so e crea un file Android.mk che contiene i seguenti

  • Album e foto di Facebook non accessibili con tutte le autorizzazioni necessarie (API GRAPH)
  • Possiamo aggiornare l'APK su Google Play Store senza modificare la versione APP
  • Vorrei impostare le mie variables nella parte superiore della mia class anziché nel metodo
  • Android Volley - Come isolare le richieste in un'altra class
  • I test non sono riusciti dopo l'aggiornamento di Espresso 2 (non riuscito: l'esecuzione della strumentazione non è rioutput a causa di 'java.lang.IllegalAccessError')
  • Base 64 codifica e decodifica codice di esempio
  •  LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := packext LOCAL_SRC_FILES := libpackext.so.1.0 LOCAL_C_INCLUDES := $(LOCAL_PATH)/../include include $(PREBUILT_SHARED_LIBRARY) 

    E quando uso il ndk-build -B di cui ho un riferimento indefinito al packageExtraction . Qui utilizzo le mie funzioni di libreria predefinite che non posso colbind la mia biblioteca condivisa preinstallata alla mia libreria offlinedownload .

    Quindi qualsiasi corpo mi aiuti a risolvere questo problema.

  • Avvia applicazione per la videocamera di default (nessun return)
  • Per iniziare con l'emulatore Open NFC
  • Come implementare la condivisione tramite opzione in android?
  • Ritardo durante il lancio di attività dal servizio
  • Valore di dpi delle visualizzazioni di text "grandi", "medio" e "piccole" di android
  • Come trovare lo stato della connessione VPN tramite API quadro o qualsiasi altro metodo efficiente?
  • 3 Solutions collect form web for “Come posso colbind la libreria condivisa preinstallata al progetto Android NDK?”

    Ecco un completo file di Android.mk per l'utilizzo di una libreria condivisa di terze parti. La libreria (libffmpeg.so) viene inserita nella cartella jni. Il suo "LOCAL_EXPORT_C_INCLUDES" specifica where vengono conservati i file di intestazione per la libreria.

     LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := ffmpeg LOCAL_SRC_FILES := libffmpeg.so LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../../ffmpeg/libs/arm-linux-androidabi4.7_1/include include $(PREBUILT_SHARED_LIBRARY) include $(CLEAR_VARS) LOCAL_MODULE := ffmpegandroid LOCAL_SRC_FILES := ffmpegandroid.c LOCAL_SHARED_LIBRARIES := ffmpeg include $(BUILD_SHARED_LIBRARY) 

    Se si desidera supportre più architetture, è ansible specificare:

     APP_ABI := armeabi armeabi-v7a x86 mips 

    nel tuo jni / Application.mk e cambiare LOCAL_SRC_FILES su qualcosa di simile:

     LOCAL_SRC_FILES := $(TARGET_ARCH_ABI)/libffmpeg.so 

    e metti un libffmpeg.so su jni / armeabi / libffmpeg.so, jni / armeabi-v7a / libffmpeg.so ecc.

    È necessario eseguire una delle seguenti operazioni:

    1. Taglia e incolla tutto tranne LOCAL_PATH: = $ (call my-dir) dal tuo secondo Android.mk nel tuo primo.

    2. Metti quanto segue alla fine del tuo primo Android.mk:

      $ (call-import-module, packext)

      Assicurarsi inoltre di impostare la variabile di ambiente NDK_MODULE_PATH in un path in cui è ansible trovare il file Android.mk che definisce il module packext.

    Devi anche cambiare le LOCAL_SHARED_LIBRARIES nello stesso modo in cui ha detto mgiza nella prima risposta. Suppongo che il packageExtraction che hai riferito indefinito è nella tua libreria pre-installata, quindi a less che non hai altri problemi di collegamento, questo dovrebbe risolvere il problema.

    Date un'occhiata alla documentazione ndk per i prebuilt:

    Android-NDK / docs / PREBUILTS.html

    Devi cambiare

     LOCAL_SHARED_LIBRARIES :=../lib/libpackext.so.1.0 

    a

     LOCAL_SHARED_LIBRARIES := packext 

    Assicurarsi che la cartella contenente l'Android.mk per il module packext sia denominata packext e può essere trovata nel tuo NDK_MODULE_PATH.

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