android.mk LOCAL_MODULE_文件名不应包含扩展名

android.mk LOCAL_MODULE_文件名不应包含扩展名,android,ffmpeg,android.mk,Android,Ffmpeg,Android.mk,我正在尝试从libavcodec和libavutil 下面,我创建了Android.mk文件,如下所示: jni/Android.mk包含 LOCAL_PATH := $(call my-dir) FFMPEG_TOP := $(LOCAL_PATH) include $(CLEAR_VARS) include $(FFMPEG_TOP)/libavutil/Android.mk include $(FFMPEG_TOP)/libavcodec/Android.mk LOCAL_PA

我正在尝试从
libavcodec
libavutil

下面,我创建了Android.mk文件,如下所示:

jni/Android.mk
包含

LOCAL_PATH := $(call my-dir)

FFMPEG_TOP := $(LOCAL_PATH)

include $(CLEAR_VARS)

include $(FFMPEG_TOP)/libavutil/Android.mk
include $(FFMPEG_TOP)/libavcodec/Android.mk



LOCAL_PATH := $(FFMPEG_TOP)
LOCAL_MODULE := mylib
LOCAL_ARM_MODE := arm  # remove this if you want thumb mode
LOCAL_SRC_FILES := myfunc1.c myfunc2.c maincfunction.c 3rdparty1.c 3rdparty2.c

LOCAL_SRC_FILES += libavcodec.a libavutil.a

LOCAL_LDLIBS := -llog

include $(BUILD_SHARED_LIBRARY)
LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

SOURCE_H264_DECODER += h264.c h264idct.c h264pred.c h264_parser.c cabac.c
SOURCE_H264_ENCODER += h264enc.c h264dspenc.c

SOURCE_HAVE_ARM = \
    arm/dsputil_arm.c        \
    arm/dsputil_arm_s.S        \
    arm/jrevdct_arm.S \
    arm/mpegvideo_arm.c        \
    arm/simple_idct_arm.S

SOURCE_HAVE_ARMV5TE = \
    arm/mpegvideo_armv5te.c \
    arm/mpegvideo_armv5te_s.S \
    arm/simple_idct_armv5te.S

SOURCE_HAVE_ARMVFP = \
    arm/dsputil_vfp.S \
    arm/float_arm_vfp.S

SOURCE_HAVE_ARMV6 = arm/simple_idct_armv6.S

LOCAL_SRC_FILES := \
   allcodecs.c \
   audioconvert.c \
   bitstream.c \
   bitstream_filter.c \
   dsputil.c \
   eval.c \
   faanidct.c \
   imgconvert.c \
   jrevdct.c \
   opt.c \
   options.c \
   parser.c \
   raw.c \
   resample.c \
   resample2.c \
   simple_idct.c \
   utils.c

LOCAL_SRC_FILES += $(SOURCE_H263_ENCODER)                 
LOCAL_SRC_FILES += $(SOURCE_H264_DECODER)

LOCAL_SRC_FILES += $(SOURCE_HAVE_ARM)                
LOCAL_SRC_FILES += $(SOURCE_HAVE_ARMV5TE)                
LOCAL_SRC_FILES += $(SOURCE_HAVE_ARMVFP)

LOCAL_MODULE := libavcodec

LOCAL_PRELINK_MODULE := false


LOCAL_C_INCLUDES :=                           \
    $(FFMPEG_TOP)/                         \
    $(FFMPEG_TOP)/libavutil/                \
    $(LOCAL_PATH)                            \
    $(LOCAL_PATH)/arm/

LOCAL_CFLAGS += -O4 -mno-thumb-interwork -mno-thumb -marm -DHAVE_AV_CONFIG_H

include $(BUILD_STATIC_LIBRARY)    
jni/libavcodec/Android.mk
包含

LOCAL_PATH := $(call my-dir)

FFMPEG_TOP := $(LOCAL_PATH)

include $(CLEAR_VARS)

include $(FFMPEG_TOP)/libavutil/Android.mk
include $(FFMPEG_TOP)/libavcodec/Android.mk



LOCAL_PATH := $(FFMPEG_TOP)
LOCAL_MODULE := mylib
LOCAL_ARM_MODE := arm  # remove this if you want thumb mode
LOCAL_SRC_FILES := myfunc1.c myfunc2.c maincfunction.c 3rdparty1.c 3rdparty2.c

LOCAL_SRC_FILES += libavcodec.a libavutil.a

LOCAL_LDLIBS := -llog

include $(BUILD_SHARED_LIBRARY)
LOCAL_PATH:= $(call my-dir)

include $(CLEAR_VARS)

SOURCE_H264_DECODER += h264.c h264idct.c h264pred.c h264_parser.c cabac.c
SOURCE_H264_ENCODER += h264enc.c h264dspenc.c

SOURCE_HAVE_ARM = \
    arm/dsputil_arm.c        \
    arm/dsputil_arm_s.S        \
    arm/jrevdct_arm.S \
    arm/mpegvideo_arm.c        \
    arm/simple_idct_arm.S

SOURCE_HAVE_ARMV5TE = \
    arm/mpegvideo_armv5te.c \
    arm/mpegvideo_armv5te_s.S \
    arm/simple_idct_armv5te.S

SOURCE_HAVE_ARMVFP = \
    arm/dsputil_vfp.S \
    arm/float_arm_vfp.S

SOURCE_HAVE_ARMV6 = arm/simple_idct_armv6.S

LOCAL_SRC_FILES := \
   allcodecs.c \
   audioconvert.c \
   bitstream.c \
   bitstream_filter.c \
   dsputil.c \
   eval.c \
   faanidct.c \
   imgconvert.c \
   jrevdct.c \
   opt.c \
   options.c \
   parser.c \
   raw.c \
   resample.c \
   resample2.c \
   simple_idct.c \
   utils.c

LOCAL_SRC_FILES += $(SOURCE_H263_ENCODER)                 
LOCAL_SRC_FILES += $(SOURCE_H264_DECODER)

LOCAL_SRC_FILES += $(SOURCE_HAVE_ARM)                
LOCAL_SRC_FILES += $(SOURCE_HAVE_ARMV5TE)                
LOCAL_SRC_FILES += $(SOURCE_HAVE_ARMVFP)

LOCAL_MODULE := libavcodec

LOCAL_PRELINK_MODULE := false


LOCAL_C_INCLUDES :=                           \
    $(FFMPEG_TOP)/                         \
    $(FFMPEG_TOP)/libavutil/                \
    $(LOCAL_PATH)                            \
    $(LOCAL_PATH)/arm/

LOCAL_CFLAGS += -O4 -mno-thumb-interwork -mno-thumb -marm -DHAVE_AV_CONFIG_H

include $(BUILD_STATIC_LIBRARY)    
jni/libavutil/Android.mk
包含 本地路径:=$(调用我的目录)

所解决的问题与我所面临的问题无关,尽管错误是相似的

我得到的错误是:

Android NDK: jni/inner/Android.mk:mylib: LOCAL_MODULE_FILENAME should not include file extensions
Android NDK: jni/inner/Android.mk:mylib: LOCAL_MODULE_FILENAME must not contain a file extension
请帮忙!!
[我经常遇到无头问题!!]

尝试在
jni/Android.mk
中使用
LOCAL\u MODULE\u FILENAME:=libavcodec LOCAL\u MODULE\u FILENAME+=libavutil
而不是
LOCAL\u SRC\u FILES+=libavcodec.a
您需要确保调用
包括$(清除变量)
包含构建静态库的make文件后。只有当该变量为空时,模块文件名的自动生成才会起作用,并且在调用
$include($BUILD\u STATIC\u LIBRARY)