Comment puis-je obtenir mes bibliothèques .so copiées sur l'appareil Android?

Pour résumer en une seule ligne: Pas toutes mes libs/armeabi/*.so fichiers sont copiés sur le périphérique lorsque je lance ma application. Je vais essayer d'expliquer.

Structure d'annuaire

J'essaie d'obtenir ffmpeg sur Android et j'ai donc la structure suivante pour le NDK:

  • Android Secure Storage
  • Android BottomSheetDialogFragment ne s'élargit pas complètement
  • Android: EfficientAdapter avec deux vues différentes
  • Obtenez la somme de contrôle des codes source dans la bibliothèque Android
  • Comment attacher une source Android à IntelliJ 10?
  • Comment mettre en œuvre l'élévation de la conception du matériau pour pré-sucette
  •  jni ├── Android.mk ├── bambuser_ffmpeg │  ├── Android.mk │  ├── libavcodec.so │  ├── libavcore.so │  ├── libavdevice.so │  ├── libavfilter.so │  ├── libavformat.so │  ├── libavutil.so │  └── libswscale.so └── video ├── Android.mk ├── at_ac_univie_gameclient_video_VideoGLSurfaceView.c ├── at_ac_univie_gameclient_video_VideoGLSurfaceView.h └── at_ac_univie_gameclient_video_VideoGLSurfaceView_GLRenderer.h 

    Fichiers Android.mk

    Le fichier Android.mk dans bambuser_ffmpeg dit:

     include $(CLEAR_VARS) LOCAL_MODULE := bambuser-libavcodec LOCAL_SRC_FILES := libavcodec.so include $(PREBUILT_SHARED_LIBRARY) # and so on, for all of the above .so files 

    Le second fichier Android.mk comporte les éléments suivants:

     LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_MODULE := ffmpeg LOCAL_STATIC_LIBRARIES := bambuser-libavcodec bambuser-libavcore bambuser-libavdevice bambuser-libavfilter bambuser-libavformat bambuser-libavutil bambuser-libswscale LOCAL_SRC_FILES := at_ac_univie_gameclient_video_VideoGLSurfaceView.c LOCAL_C_INCLUDES := $(LOCAL_PATH)/../bambuser_ffmpeg/ LOCAL_LDLIBS := -L$(LOCAL_PATH)/../bambuser_ffmpeg -lavcodec -lavcore -lavdevice -lavfilter -lavformat -lavutil -lswscale -llog -lz -lGLESv1_CM include $(BUILD_SHARED_LIBRARY) 

    Sortie

    Donc, quand je cours ./ndk-build , je reçois cette sortie. As-tu bien, n'est-ce pas?

     Prebuilt : libavcodec.so <= jni/bambuser_ffmpeg/ Install : libavcodec.so => libs/armeabi/libavcodec.so Prebuilt : libavcore.so <= jni/bambuser_ffmpeg/ Install : libavcore.so => libs/armeabi/libavcore.so Prebuilt : libavdevice.so <= jni/bambuser_ffmpeg/ Install : libavdevice.so => libs/armeabi/libavdevice.so Prebuilt : libavfilter.so <= jni/bambuser_ffmpeg/ Install : libavfilter.so => libs/armeabi/libavfilter.so Prebuilt : libavformat.so <= jni/bambuser_ffmpeg/ Install : libavformat.so => libs/armeabi/libavformat.so Prebuilt : libavutil.so <= jni/bambuser_ffmpeg/ Install : libavutil.so => libs/armeabi/libavutil.so Prebuilt : libswscale.so <= jni/bambuser_ffmpeg/ Install : libswscale.so => libs/armeabi/libswscale.so Install : libffmpeg.so => libs/armeabi/libffmpeg.so 

    Problème

    Lorsque je lance ma application Android, il tentera de charger libffmpeg.so . Bien sûr, mon répertoire local libs contient toutes les bibliothèques nécessaires, car elles ont été construites / copiées avant:

     libs └── armeabi ├── libavcodec.so ├── libavcore.so ├── libavdevice.so ├── libavfilter.so ├── libavformat.so ├── libavutil.so ├── libffmpeg.so └── libswscale.so 

    Cependant, sur l'appareil luimême , il n'y a que mon fichier libffmpeg.so . Il réside dans at.ac.univie.gameclient/lib/libffmpeg.so et a été copié là-bas automatiquement. Où sont les autres fichiers .so et comment puis-je les obtenir sur le périphérique?

    De plus, il suffit de les copier manuellement. Il n'y a pas de solution désirée.

  • Accelerometer SensorEvent timestamp
  • Les périphériques pris en charge sont extrêmement faibles
  • Exécution d'applications contenant une grande quantité de code
  • Qu'est-ce qu'un événement de presse à joues?
  • Y compris list_content dans la disposition de la liste pour conserver la fonctionnalité ListFragment
  • HLS (diffusion en direct http) sur Android 3.0 et en recherche
  • One Solution collect form web for “Comment puis-je obtenir mes bibliothèques .so copiées sur l'appareil Android?”

    Êtes-vous absolument sûr que toutes vos bibliothèques sont là avant de télécharger l'application. Oui, j'ai vu que vous étiez là, mais lorsque vous créez le projet jni, il supprime tous vos fichiers existants dans le répertoire libs. Alors rafraîchissez-vous avant de le télécharger uniquement pour vérifier.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.