Modules ndk ndk Android

J'ai un projet natif qui, en frustration avec le système de création, j'ai travaillé en bloquant tout le code depuis plusieurs années. J'ai tenté de porter le projet correctement à gradle-experimental, mais c'est encore une catastrophe 2,5 ans plus tard. Je tente maintenant d'utiliser le système Android.mk dans le cadre du projet réorganisé (pour gradle-experimental).

Voici l'organisation:

  • Pourquoi Android Gradle preDexDebug "La source et la destination doivent-elles être différentes" la construction a échoué?
  • Comment pouvez-vous gérer le rejet d'un DialogFragment (compatibilité lib) à la fin d'un AsyncTask
  • Android Studio - processDebugResources a échoué
  • JIT vs AOT Compiling
  • Exécuter l'application deux fois au travail
  • Comment puis-je utiliser InputFilter pour limiter les caractères d'un EditText dans Android?
    • Jpeg (full native)
    • Processeur (entièrement natif, dépend de jpeg)
    • Bibliothèque (jni, dépendant du processeur et jpeg)

    module -jni (contains Application.mk, Android.mk) -jpeg --src ---main ----jni -----Android.mk (and source co-located) -processor --src ----main -----jni ------Android.mk ------/processor(source) -library --src ----main -----java -----jni -----Android.mk (and source co-located) 

    Je sais que je pourrais l'aplatir si j'utilise les fichiers de création, mais je constate un jour en 2020 Android Studio sera vraiment compatible avec les Autochtones, donc j'ai pensé que je garderais le format actuel du projet.

    Voici mes fichiers de création:

    Module / jni:

     LOCAL_PATH := $(call my-dir) STARTUP_DIR := $(LOCAL_PATH) include $(STARTUP_DIR)/../jpeg/src/main/jni/Android.mk include $(STARTUP_DIR)/../processor/src/main/jni/Android.mk include $(STARTUP_DIR)/../library/src/main/jni/Android.mk include $(CLEAR_VARS) 

    Jpeg / jni:

     LOCAL_PATH:= $(call my-dir) include $(CLEAR_VARS) LOCAL_ARM_MODE := arm LOCAL_SRC_FILES := [truncated] LOCAL_CFLAGS += -DAVOID_TABLES LOCAL_CFLAGS += -O3 -fstrict-aliasing -fprefetch-loop-arrays #LOCAL_CFLAGS += -march=armv6j # enable tile based decode LOCAL_CFLAGS += -DANDROID_TILE_BASED_DECODE ifeq ($(TARGET_ARCH_VARIANT),x86-atom) LOCAL_CFLAGS += -DANDROID_INTELSSE2_IDCT LOCAL_SRC_FILES += jidctintelsse.c endif # enable armv6 idct assembly ifeq ($(strip $(TARGET_ARCH)),arm) LOCAL_CFLAGS += -DANDROID_ARMV6_IDCT endif # use mips assembler IDCT implementation if MIPS DSP-ASE is present ifeq ($(strip $(TARGET_ARCH)),mips) ifeq ($(strip $(ARCH_MIPS_HAS_DSP)),true) LOCAL_CFLAGS += -DANDROID_MIPS_IDCT LOCAL_SRC_FILES += \ mips_jidctfst.c \ mips_idct_le.S endif endif LOCAL_MODULE := libjpeg include $(BUILD_STATIC_LIBRARY) 

    Processeur / jni

     LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_CFLAGS += -DUSE_JPEG LOCAL_STATIC_LIBRARIES += libjpeg LOCAL_C_INCLUDES += $(LOCAL_PATH)/../../../../jpeg/src/main/jni LOCAL_MODULE := processor LOCAL_SRC_FILES := [truncated] LOCAL_C_INCLUDES += [truncated] LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/processor/include LOCAL_LDLIBS += -lz include $(BUILD_SHARED_LIBRARY) 

    Lorsque j'utilise ndk-build, il va réussir à créer un jpeg lorsqu'il obtient la construction du processeur. Il ne manquera pas de construire n'importe quel code référençant jpeg (dans le processeur) avec des références indéfinies telles que:

    Référence non définie à `jpeg_std_error (jpeg_error_mgr *) '

    J'ai l'impression que je fais quelque chose de mal dans la configuration de l'Android.mk parental tel que LOCAL_STATIC_LIBRARIES += libjpeg pas correctement. Quelqu'un sait ce que je ferais mal ici?

  • Comment savoir si le périphérique Android supporte Bluetooth Low Energy
  • Dans Activity.onCreate (), pourquoi Intent.getExtras () retourne-t-il parfois nul?
  • La barre d'outils AppCompat_v7 en tant que barre d'action ne montre pas les actions «toujours» du menu, mais la barre d'outils de l'API ne fonctionne
  • Modifier la valeur du texte dans la structure de gonflage
  • NoSuchMethodError: String.isEmpty
  • MathML et Java
  • One Solution collect form web for “Modules ndk ndk Android”

    Il s'avère que j'ai tiré le mauvais en-tête jpeg qui n'avait pas extern "C" pour aider à gérer le nom dans c ++. La correction de l'en-tête portait sur le problème.

    En outre, j'ai dû réorganiser la structure des dossiers car NDK imbriqué est un cauchemar si tous les projets ne tombent pas sous jni. Il commencera à gérer LOCAL_PATH, les caractères génériques et, en principe, tout chemin relatif.

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