2015-10-08 36 views
2

我在Galaxy S6 Edge +上收到一條錯誤消息,說它無法加載本地庫。我正在使用CSipSimple。它編譯好,如果我不包括在Application.mk文件中的arm64-v8a。我gettings此錯誤:Android CSipSimple構建失敗,arm64-v8a

[arm64-v8a] StaticLibrary : libpj_amr_stagefright_codec.a 
[arm64-v8a] StaticLibrary : libpjsip.a 
[arm64-v8a] Compile  : pjmedia <= echo_webrtc_aec.c 
In file included from jni/pjsip/android_toolchain/pjmedia/../../sources/pjmedia/../../../webrtc/sources/modules/audio_processing/aec/include/echo_cancellation.h:14:0, 
       from jni/pjsip/android_toolchain/pjmedia/../../sources/pjmedia/src/pjmedia/echo_webrtc_aec.c:57: 
jni/pjsip/android_toolchain/pjmedia/../../sources/pjmedia/../../../webrtc/sources/typedefs.h:61:2: error: #error Please add support for your architecture in typedefs.h 
#error Please add support for your architecture in typedefs.h 
^
make[1]: *** [obj/local/arm64-v8a/objs/pjmedia/src/pjmedia/echo_webrtc_aec.o] Error 1 
make[1]: *** Waiting for unfinished jobs.... 
rm jni/swig-glue/android_toolchain/../.pjsua.i 
make[1]: Leaving directory `/home/user/data/svn/CSipSimple-trunk/CSipSimple' 
make: *** [libraries] Error 2 

這裏的make文件的部分(我將它列入情況下把事情搞糟):

JNI_DIR := $(call my-dir) 

APP_OPTIM := release APP_ABI := armeabi armeabi-v7a x86 mips arm64-v8a 

MY_USE_CSIPSIMPLE := 1 

MY_USE_G729 := 1 

我使用了Android NDK r10e- RC4,如果有幫助。

編輯1: 我也試過爲了使用下面的命令建立: SVN更新,使清潔,使UDPATE,使

回答

0

我有同樣的問題。它看起來像來自WebRTC的代碼還不支持arm64-v8a。

將下面的補丁應用於錯誤消息中的'webrtc/sources/typedefs.h'可以修復此構建中斷。

#define WEBRTC_ARCH_32_BITS 
#define WEBRTC_ARCH_LITTLE_ENDIAN 
#define WEBRTC_LITTLE_ENDIAN 
+#elif defined(__aarch64__) 
+#define WEBRTC_ARCH_64_BITS 
+#define WEBRTC_ARCH_LITTLE_ENDIAN 
+#define WEBRTC_LITTLE_ENDIAN 
#elif defined(__MIPSEL__) 
#define WEBRTC_ARCH_32_BITS 
#define WEBRTC_ARCH_LITTLE_ENDIAN 

還看到:https://android.googlesource.com/platform/external/webrtc/+/android-6.0.1_r41/src/typedefs.h

音符,從上面的鏈接的代碼不包含#define WEBRTC_LITTLE_ENDIAN,但在版本的我的代碼,WEBRTC_LITTLE_ENDIANWEBRTC_ARCH_LITTLE_ENDIAN是成對出現的。所以我認爲這取決於版本。