Фатальная ошибка: (файл не найден) Android -NDK - PullRequest
1 голос
/ 11 апреля 2020

Я пытаюсь скомпилировать WebRT C Собственный стек для VoiceEngine. Я получил полный набор WebRT C Native Stack из хром и поместил его в JNI-Directory проекта Android.


Файлы каталогов JNI:

  • webrt c
  • Android .mk
  • Application.mk
  • org_webrtc_voiceengine. cc
  • org_webrtc_voiceengine.h

Android .mk

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

########################################
   ######  Important Flags  ########
########################################

LOCAL_CFLAGS    := -w
LOCAL_CFLAGS    += -O0
LOCAL_LDLIBS    += -llog
LOCAL_CFLAGS    += -Wall
LOCAL_LDLIBS    += -landroid
LOCAL_CPPFLAGS  += -std=c++14
LOCAL_CFLAGS    += -DWEBRTC_POSIX
LOCAL_CFLAGS    += -DWEBRTC_ANDROID
LOCAL_CPPFLAGS  += -stdlib=libstdc++
LOCAL_LDLIBS    += -lOpenSLES -llog
LOCAL_PRELINK_MODULE    := false

########################################

LOCAL_SRC_FILES := org_webrtc_voiceengine.cc

include $(LOCAL_PATH)/webrtc/voice_engine/Android.mk
include $(CLEAR_VARS)

LOCAL_MODULE    := libwebrtc-voice
LOCAL_STATIC_LIBRARIES := lib_voice

include $(BUILD_SHARED_LIBRARY)

Я включаю Android .mk , такой как $(LOCAL_PATH)/webrtc/voice_engine/Android.mk, такой же, как здесь: google- git -webrt c -module-voice-engine и здесь связаны исходные файлы .


Application.mk

APP_ABI :=  all

APP_STL := c++_static
#APP_STL:=gnustl_static

APP_PLATFORM := android-16

STLPORT_FORCE_REBUILD := true
NDK_TOOLCHAIN_VERSION := clang

APP_CPPFLAGS := -fexceptions -fno-stack-protector -latomic
APP_CPPFLAGS += -std=c++14 -stdlib=libstdc++ -Wno-return-type

NDK-BUILD

С помощью команды ndk-build clean & ndk-build я попытался скомпилировать собственный стек.


Дополнительная информация:

  • ОС-имя Microsoft Windows 10 Pro
  • Android Studio 3.6.2
  • NDK-Verison android-ndk-r13b (я также пробовал android-ndk-r20b)
  • WebRT C -свой стек

Ошибка:

fatal error: 'webrtc/modules/interface/module_common_types.h' file not found

Это происходит почти для всех связанных заголовочных файлов в WebRT C Собственный стек. Я пробовал, в том числе полный путь к этому файлу, например:

#include "F:/Webrtc/VoiceEngine/app/src/main/jni/webrtc/modules/interface/module_common_types.h"

Это сработало. Но если я сделаю это, такая же ошибка произойдет для некоторого другого заголовочного файла в том же собственном стеке. Другая большая проблема с использованием этого Fully Specified Path заключается в том, что WebRT C Native Stack становится бременем. Как тогда, было бы много беспорядка иерархической связи между родными классами.

Еще одна вещь, которую я могу сделать, это то, что я могу поместить все связанные вещи собственного стека голосового движка в один каталог, что опять-таки нарушит все связи между WebRT C Native Stack и, действительно, грязная техника разработки.

  • Есть ли способ выяснить, где именно проблема?
  • Как это исправить, не меняя WebRT C Native Связь стека?

...