【问题标题】:Android NDK : Aborting. StopAndroid NDK:正在中止。停止
【发布时间】:2014-03-21 09:13:52
【问题描述】:

我正在尝试在Java 编码中调用C++ 方法。

在定义Android.mk 文件时,我收到了Android NDK : Aborting. Stop,如下所示:

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_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE    := ffmpeg
LOCAL_SRC_FILES := libs/ffmpeg.so

include $(BUILD_SHARED_LIBRARY)

Questions

1 - 如何修复此错误?

2 - 在Android.mk 文件中,不能同时调用libs/ffmpeg.soffmpeg.cpp

知道这个的人,

请告诉我,

谢谢,

p/s:项目结构:

【问题讨论】:

  • LOCAL_SRC_FILES := libs/ffmpeg.so ????
  • 对不起?你是什​​么意思?如下图?
  • 我的意思是.. LOCAL_SRC_FILES 期望源文件所在的位置,但你让它指向.so。可能我错了,有点时间我不和ndk一起工作了,但是对我来说看起来有点奇怪

标签: android c++ android-ndk ffmpeg shared-libraries


【解决方案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)

结果会帮助我:

它仍然是你需要call the C++ function in C++ file from Java file的时候。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-26
    • 1970-01-01
    • 1970-01-01
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-07
    相关资源
    最近更新 更多