Android NDK w / ffmpeg库 - 错误运行项目 [英] Android NDK w/ ffmpeg library - error running project

查看:853
本文介绍了Android NDK w / ffmpeg库 - 错误运行项目的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用本指南, http:// www。 roman10.net/how-to-build-ffmpeg-with-ndk-r9/ ,我成功地使用Android NDK 10编译了ffmpeg-2.4.2,但是现在我在eclipse项目中使用了这个问题。

Using this guide, http://www.roman10.net/how-to-build-ffmpeg-with-ndk-r9/, I successfully compiled ffmpeg-2.4.2 with Android NDK 10, but now I'm having issues using it in my eclipse project.

我收到的错误:

*** Android NDK: Aborting    .  Stop.

这在prebuilt-library.mk中指向:

which points to this in prebuilt-library.mk:

ifndef prebuilt
$(call __ndk_info,ERROR:$(LOCAL_MAKEFILE):$(LOCAL_MODULE): LOCAL_SRC_FILES points to a missing file)
$(call __ndk_info,Check that $(prebuilt_path) exists, or that its path is correct)
$(call __ndk_error,Aborting) <----- ***** This line is specifically pointed out by the error log
endif

这是我的... jni / Android.mk:

Here's my ...jni/Android.mk:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE    := VideoTest
LOCAL_SRC_FILES := videotest.c
LOCAL_LDLIBS := -llog -ljnigraphics -lz -landroid
LOCAL_SHARED_LIBRARIES := libavformat libavcodec libswscale libavutil

include $(BUILD_SHARED_LIBRARY)
$(call import-module,ffmpeg-2.4.2/android/arm)

这是我的android-ndk / sources / ffmpeg-2.4.2 / android / arm / Android.mk:

Here's my android-ndk/sources/ffmpeg-2.4.2/android/arm/Android.mk:

LOCAL_PATH:= $(call my-dir)


include $(CLEAR_VARS)
LOCAL_MODULE:= libavcodec
LOCAL_SRC_FILES:= lib/libavcodec-55.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE:= libavformat
LOCAL_SRC_FILES:= lib/libavformat-55.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE:= libswscale
LOCAL_SRC_FILES:= lib/libswscale-2.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE:= libavutil
LOCAL_SRC_FILES:= lib/libavutil-52.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE:= libavfilter
LOCAL_SRC_FILES:= lib/libavfilter-3.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)
LOCAL_MODULE:= libwsresample
LOCAL_SRC_FILES:= lib/libswresample-0.so
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
include $(PREBUILT_SHARED_LIBRARY)

这是我的项目结构:

http://imgur.com/ 2vMryOS

所以在我看来,项目没有建设,因为LOCAL_SRC_FILES没有指向任何东西,但它是指在jni中的LOCAL_SRC_FILES /Android.mk或者一个在... ffmpeg-2.4.2 / android / arm / Android.mk?无论哪种方式,似乎他们实际上是指向某事。我也试过看这个解决方案, Android NDK:中止停止?,但我'我很难理解它。哪个Android.mk文件需要更改?

So it seems to me that the project isn't building because the LOCAL_SRC_FILES doesn't point to anything, but is it referring to LOCAL_SRC_FILES in jni/Android.mk or the one in ...ffmpeg-2.4.2/android/arm/Android.mk? Either way, it seems like they are actually pointing to something. I've also tried looking at this solution, Android NDK: Aborting stop?, but I'm having a hard time understanding it. Which Android.mk file needs changing?

推荐答案

ffmpeg 2.4.2使用较新的库:

ffmpeg 2.4.2 uses newer libraries:

libavcodec- 56.so,
libavformat-56.so,
libswscale-3.so,
libavutil-54.so,
libavfilter-5.so,
libswresample- 1.so

libavcodec-56.so, libavformat-56.so, libswscale-3.so, libavutil-54.so, libavfilter-5.so, libswresample-1.so

更新:
,我认为你在android-ndk / sources / ffmpeg-2.4.2 / android / arm / Android.mk。第四行结束 - 应该是 LOCAL_MODULE:= libswresample

这篇关于Android NDK w / ffmpeg库 - 错误运行项目的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆