代码之家  ›  专栏  ›  技术社区  ›  JamesNickel

Android版PJSIP(2019)

  •  0
  • JamesNickel  · 技术社区  · 7 年前

    我用 this helper得到了.so文件,但是这个helper有点旧,而且它的输出不适合androidstudio。

    我应该是一个C编程专家来使用这个库,还是我没有花足够的时间在互联网上搜索一个明确的答案?

    如果您在Android应用程序中使用“pjproject v2.8”,请分享您的知识。提前谢谢。

    0 回复  |  直到 7 年前
        1
  •  0
  •   JamesNickel    6 年前

    我已经能够为 arm64-v8a armeabi-v7a 架构,但它失败并出现错误 x86_64 x86

    我用最新版本(2.9)更新了存储库,希望能修复这个bug。但是新版本甚至没有构建*.a文件。

    /home/adminz/android/sdk/ndk/20.0.5594570/sources/cxx-stl/llvm-libc++/include/cstddef:50:9: error: no member named
          'ptrdiff_t' in the global namespace
    using ::ptrdiff_t;
          ~~^
    /home/adminz/android/sdk/ndk/20.0.5594570/sources/cxx-stl/llvm-libc++/include/cstddef:51:9: error: no member named
          'size_t' in the global namespace
    using ::size_t;
          ~~^
    In file included from ../../yuv/source/compare.cc:14:
    In file included from /home/adminz/android/sdk/ndk/20.0.5594570/sources/cxx-stl/llvm-libc++/include/math.h:309:
    /home/adminz/android/sdk/ndk/20.0.5594570/sources/cxx-stl/llvm-libc++/include/type_traits:763:22: error: unknown type
          name 'size_t'
    template <class _Tp, size_t _Np> struct _LIBCPP_TEMPLATE_VIS is_array<_Tp[_Np]>
                         ^
    /home/adminz/android/sdk/ndk/20.0.5594570/sources/cxx-stl/llvm-libc++/include/type_traits:1282:32: error: use of
          undeclared identifier 'size_t'; did you mean 'sizeof'?
        : public integral_constant<size_t, 0> {};
                                   ^
    /home/adminz/android/sdk/ndk/20.0.5594570/sources/cxx-stl/llvm-libc++/include/type_traits:1282:38: error: expected
          expression
        : public integral_constant<size_t, 0> {};
                                         ^
    /home/adminz/android/sdk/ndk/20.0.5594570/sources/cxx-stl/llvm-libc++/include/type_traits:1282:43: error: expected
          class name
        : public integral_constant<size_t, 0> {};
                                              ^
    /home/adminz/android/sdk/ndk/20.0.5594570/sources/cxx-stl/llvm-libc++/include/type_traits:1284:32: error: use of
          undeclared identifier 'size_t'; did you mean 'sizeof'?
        : public integral_constant<size_t, rank<_Tp>::value + 1> {};
                                   ^
    /home/adminz/android/sdk/ndk/20.0.5594570/sources/cxx-stl/llvm-libc++/include/type_traits:1284:38: error: expected
          expression
        : public integral_constant<size_t, rank<_Tp>::value + 1> {};
                                         ^
    /home/adminz/android/sdk/ndk/20.0.5594570/sources/cxx-stl/llvm-libc++/include/type_traits:1284:49: error: expected
          class name
        : public integral_constant<size_t, rank<_Tp>::value + 1> {};
                                                    ^
    /home/adminz/android/sdk/ndk/20.0.5594570/sources/cxx-stl/llvm-libc++/include/type_traits:1285:22: error: unknown
          type name 'size_t'
    template <class _Tp, size_t _Np> struct _LIBCPP_TEMPLATE_VIS rank<_Tp[_Np]>
                         ^
    /home/adminz/android/sdk/ndk/20.0.5594570/sources/cxx-stl/llvm-libc++/include/type_traits:1286:32: error: use of
          undeclared identifier 'size_t'; did you mean 'sizeof'?
        : public integral_constant<size_t, rank<_Tp>::value + 1> {};
                                   ^
    /home/adminz/android/sdk/ndk/20.0.5594570/sources/cxx-stl/llvm-libc++/include/type_traits:1286:38: error: expected
          expression
        : public integral_constant<size_t, rank<_Tp>::value + 1> {};
                                         ^
    /home/adminz/android/sdk/ndk/20.0.5594570/sources/cxx-stl/llvm-libc++/include/type_traits:1286:49: error: expected
          class name
        : public integral_constant<size_t, rank<_Tp>::value + 1> {};
                                                    ^
    /home/adminz/android/sdk/ndk/20.0.5594570/sources/cxx-stl/llvm-libc++/include/type_traits:1297:32: error: use of
          undeclared identifier 'size_t'; did you mean 'sizeof'?
        : public integral_constant<size_t, 0> {};
                                   ^
    /home/adminz/android/sdk/ndk/20.0.5594570/sources/cxx-stl/llvm-libc++/include/type_traits:1297:38: error: expected
          expression
        : public integral_constant<size_t, 0> {};
                                         ^
    /home/adminz/android/sdk/ndk/20.0.5594570/sources/cxx-stl/llvm-libc++/include/type_traits:1297:43: error: expected
          class name
        : public integral_constant<size_t, 0> {};
                                              ^
    /home/adminz/android/sdk/ndk/20.0.5594570/sources/cxx-stl/llvm-libc++/include/type_traits:1299:32: error: use of
          undeclared identifier 'size_t'; did you mean 'sizeof'?
        : public integral_constant<size_t, 0> {};
                                   ^
    /home/adminz/android/sdk/ndk/20.0.5594570/sources/cxx-stl/llvm-libc++/include/type_traits:1299:38: error: expected
          expression
        : public integral_constant<size_t, 0> {};
                                         ^
    /home/adminz/android/sdk/ndk/20.0.5594570/sources/cxx-stl/llvm-libc++/include/type_traits:1299:43: error: expected
          class name
        : public integral_constant<size_t, 0> {};
                                              ^
    fatal error: too many errors emitted, stopping now [-ferror-limit=]
    

    在使用发布版本更新svn repo之前,错误如下:

    /home/adminz/android/pjsip/third_party/lib/libwebrtc-x86_64-pc-linux-android.a(aec_core.o):aec_core.c:function WebRtcAec_CreateAec: error: undefined reference to 'WebRtc_GetCPUInfo'
    /home/adminz/android/pjsip/third_party/lib/libwebrtc-x86_64-pc-linux-android.a(aec_core.o):aec_core.c:function WebRtcAec_CreateAec: error: undefined reference to 'WebRtcAec_InitAec_SSE2'
    /home/adminz/android/pjsip/third_party/lib/libwebrtc-x86_64-pc-linux-android.a(aec_rdft.o):aec_rdft.c:function aec_rdft_init: error: undefined reference to 'WebRtc_GetCPUInfo'
    /home/adminz/android/pjsip/third_party/lib/libwebrtc-x86_64-pc-linux-android.a(aec_rdft.o):aec_rdft.c:function aec_rdft_init: error: undefined reference to 'aec_rdft_init_sse2'
    clang++: error: linker command failed with exit code 1 (use -v to see invocation)
    Makefile:165: recipe for target 'android/app/src/main/jniLibs/x86_64/libpjsua2.so' failed
    

    我最后的结论是PjProject是一个小发明(对于某些平台而言),它的开发人员甚至没有对发布版本进行足够的测试,而是将用户作为他们的测试用例。我对pjsip很失望。很多功能,比如一些没有用的软件包。

    推荐文章