Android NDK: Прекратить остановку?
Я работаю над ffmpeg для android. Я успешно скомпилировал ffmpeg-2.0.1 после этого я делаю файл Android.mk в своих источниках NDK/ffmpeg-2.0.1/android/arm как
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)
После этого сделайте проект андроида и в Android файле Android-проекта, как
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := tutorial01
LOCAL_SRC_FILES := tutorial01.c
LOCAL_LDLIBS := -llog -ljnigraphics -lz
LOCAL_SHARED_LIBRARIES := libavformat libavcodec libswscale libavutil
include $(BUILD_SHARED_LIBRARY)
$(call import-module,ffmpeg-2.0.1/android/arm)
но показывая проблему
*** Android NDK: Aborting . Stop.
android-ffmpeg-tutorial01line 45, external location:
/home/tech/Documents/roman10/ndk/android-ndk-r9c/build/core/prebuilt-library.mk
C/C++ Problem
Мой NDK - это android-ndk-r9c, система - ubuntu-13.04, пожалуйста, всем мне.
заблаговременно.
Ответы
Ответ 1
Сначала Android.mk structure
.
Нужно изменить файл Android.mk
следующим образом:
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE := ffmpeg
LOCAL_SRC_FILES := libs/ffmpeg.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := final_ffmpeg
LOCAL_SRC_FILES := ffmpeg.cpp
LOCAL_LDLIBS := -L$(SYSROOT)/usr/lib -llog
LOCAL_PREBUILTS := libs/ffmpeg.so
#libavformat libavcodec libswscale libavutil
include $(BUILD_SHARED_LIBRARY)
p/s:
Я также получаю проблему Android NDK : Aborting
, когда вы ставите данные вместе следующим образом:
LOCAL_PATH:= $(call my-dir)
include $(CLEAR_VARS)
LOCAL_MODULE:= ffmpeg
LOCAL_SRC_FILES:= libs/ffmpeg.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := ffmpeg
LOCAL_SRC_FILES := ffmpeg.cpp
LOCAL_SHARED_LIBRARIES := ffmpeg
include $(BUILD_SHARED_LIBRARY)
Эта проблема возникает, когда дублируется имя LOCAL_MODULE
.
Результат поможет вам:
Все равно, когда вам нужно вызвать функцию С++ в файле С++ из файла Java.
Ответ 2
У меня возникла аналогичная проблема, когда я попытался создать образец HelloComputeNDK с помощью NDK64-Linux-r10.
Затем я замечаю, что NDK64-Linux-r10 имеет платформу Android-L, поэтому я загружаю NDK32-Linux-R10 и объединять ее с NDK64-Linux-r10.
Это хорошо для меня.
U можно скачать NDK32-Linux-r10 здесь:
https://developer.android.com/tools/sdk/ndk/index.html