crow-misia / libmediasoup-android

libmediasoupclient for Android
Apache License 2.0
9 stars 9 forks source link

Building webrtc error for Android M98 #3

Closed xujingzhou closed 1 year ago

xujingzhou commented 1 year ago

Hi,

"arm64-v8a", "x86" and "x86_64" are all errors except "armeabi-v7a" when I compile webrtc-android m98 with the command line(The 'use custom libcxx=false' parameter is mandatory). Please help to see what the solution is! thanks!

cmd:

python3 tools_webrtc/android/build_aar.py --extra-gn-args 'is_debug=false is_component_build=false is_clang=true rtc_include_tests=false rtc_use_h264=true rtc_enable_protobuf=false use_rtti=true use_custom_libcxx=false' --build-dir ../out/release-build/

error info:

INFO:root:Building: arm64-v8a Done. Made 5505 targets from 310 files in 1253ms ninja: Entering directory `/home/webrtc/android/out/release-build/arm64-v8a' [3203/3694] SOLINK ./libjingle_peerconnection_so.so FAILED: libjingle_peerconnection_so.so libjingle_peerconnection_so.so.TOC python3 "../../../src/build/toolchain/gcc_solink_wrapper.py" --readelf="../../../src/third_party/llvm-build/Release+Asserts/bin/llvm-readelf" --nm="../../../src/third_party/llvm-build/Release+Asserts/bin/llvm-nm" --sofile="./libjingle_peerconnection_so.so" --tocfile="./libjingle_peerconnection_so.so.TOC" --output="./libjingle_peerconnection_so.so" -- ../../../src/third_party/llvm-build/Release+Asserts/bin/clang++ -shared -Wl,-soname="libjingle_peerconnection_so.so" -lEGL -Wl,--build-id -fuse-ld=lld -Wl,--fatal-warnings -Wl,--build-id -fPIC -Wl,-z,noexecstack -Wl,-z,relro -Wl,-z,now -Wl,-z,max-page-size=4096 -Wl,--icf=all -Wl,--color-diagnostics -Wl,--no-rosegment -Wl,--no-call-graph-profile-sort -Wl,--exclude-libs=libvpx_assembly_arm.a --unwindlib=none --target=aarch64-linux-android21 -Wl,-mllvm,-enable-machine-outliner=never -no-canonical-prefixes -Werror -Wl,--warn-shared-textrel -Wl,-O2 -Wl,--gc-sections --sysroot=../../../src/third_party/android_ndk/toolchains/llvm/prebuilt/linux-x86_64/sysroot -Wl,--warn-shared-textrel -Wl,-z,defs -Wl,--as-needed -Wl,--version-script=../../../src/build/android/android_only_jni_exports.lst -Wl,--dynamic-linker,/system/bin/linker64 -o "./libjingle_peerconnection_so.so" @"./libjingle_peerconnection_so.so.rsp" ld.lld: error: undefined symbol: _Unwind_Backtrace

referenced by stacktrace.cc:227 (../../../src/sdk/android/native_api/stacktrace/stacktrace.cc:227)native_api_stacktrace/stacktrace.o:(webrtc::GetStackTrace()) in archive obj/sdk/android/libnative_api_stacktrace.areferenced by stacktrace.cc:132 (../../../src/sdk/android/native_api/stacktrace/stacktrace.cc:132)native_api_stacktrace/stacktrace.o:(webrtc::(anonymous namespace)::SignalHandler(int, siginfo, void)) in archive obj/sdk/android/libnative_api_stacktrace.a

ld.lld: error: undefined symbol: _Unwind_GetIP

referenced by stacktrace.cc:120 (../../../src/sdk/android/native_api/stacktrace/stacktrace.cc:120)native_api_stacktrace/stacktrace.o:(webrtc::(anonymous namespace)::UnwindBacktrace(_Unwind_Context, void)) in archive obj/sdk/android/libnative_api_stacktrace.aclang++: error: linker command failed with exit code 1 (use -v to see invocation)[3205/3694] ACTION //third_party/android_de...uild/toolchain/android:android_clang_arm64)ninja: build stopped: subcommand failed.Traceback (most recent call last):File "tools_webrtc/android/build_aar.py", line 260, insys.exit(main())File "tools_webrtc/android/build_aar.py", line 255, in mainBuildAar(args.arch, args.output, args.use_goma, args.extra_gn_args,File "tools_webrtc/android/build_aar.py", line 235, in BuildAarBuild(build_dir, arch, use_goma, extra_gn_args, extra_gn_switches,File "tools_webrtc/android/build_aar.py", line 194, in Build_RunNinja(output_directory, ninja_args)File "tools_webrtc/android/build_aar.py", line 122, in _RunNinjasubprocess.check_call(cmd)File "/usr/lib/python3.8/subprocess.py", line 364, in check_callraise CalledProcessError(retcode, cmd)subprocess.CalledProcessError: Command '['/home/webrtc/android/src/third_party/depot_tools/ninja', '-C', '/home/webrtc/android/out/release-build/arm64-v8a', 'sdk/android:libwebrtc', 'sdk/android:libjingle_peerconnection_so']' returned non-zero exit status 1.

crow-misia commented 1 year ago

libwebrtc must be set to use_custom_libcxx=true for Android builds after m98

I would like to solve this problem, but I haven't found it yet.

xujingzhou commented 1 year ago

libwebrtc must be set to use_custom_libcxx=true for Android builds after m98

I would like to solve this problem, but I haven't found it yet.

So if I want to use android m98 and later version in libmediasoup-android code, I can't do it right now?

crow-misia commented 1 year ago

Unable to do so.

xujingzhou commented 1 year ago

thanks.

crow-misia commented 1 year ago

@xujingzhou

m98 and later static libraries built with use_custom_libcxx=false released.

https://github.com/crow-misia/libwebrtc-bin/releases

libmediasoup-android using this static library is released. https://github.com/crow-misia/libmediasoup-android/releases/tag/v0.11.0

https://search.maven.org/artifact/io.github.crow-misia.libmediasoup-android/libmediasoup-android