目录
大功告成总结2025-12-17
【Android编译环境】研究难度工作量 50%
在2024年这个预研的基础上,了解android的几个环境的关系 。
进一步了解android studio 里 AGP,gradle等关系_android studio agp-优快云博客
今年在本地工程里,怎么倒腾都成功不了了。重新折腾了一遍。
https://blog.youkuaiyun.com/dualvencsdn/article/details/155857912
核心知识点
android sdk 34 ->支持jdk17去编译 (先不动 aar,先把环境 搞定)
需要android gradle plugin 8.0.3才支持 sdk34 ,因为34支持 jdk 17.

Android版本与SDK/API版本、JDK对应关系_minsdk 23对应安卓版本-优快云博客
这里纯粹是个认知问题;
更改android sdk版本后,会有一系列的问题,先不动aar,先把环境搞定;然后再变更成较新的libwebrtc-m124 ,更新(主要是注释了四五处地方)提交变更如:
2025-12-12 webrtc test (02585a3f) · Commits · mesh / MyRtc-app · GitLab
【合适的librtc包的导入】研究工作量30%
将m124,引入到工程,可以编译成功。发现依然不支持。github上一顿找,也找不到支持的。算了,还是自己编译吧。

在2024年的基础上,继续下载重新来吧。(原经验,就是在ubuntu上编译)
export https_proxy=http://10.60.3.28:8819
export http_proxy=http://10.60.3.28:8819
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
https://blog.youkuaiyun.com/solarsaber/article/details/131221815
核心点:
export PATH=$PATH:/data/webrtc/depot_tools/
这只是临时的,后面如果还要来编译,也需要临时再加下;也可以写到系统里去。
fetch --nohooks webrtc_android ---我理解只是取了这个分支,代码还是在src里。
gclient sync
中间代理 会断,发现不下载了,ctrl +C 继续命令
gclient sync
以上过程大概得三个多小时。

【匹配原业务修改】工作量20%
(1) 最新的代码通过
root@dualven-yangtianm4900c-00:/data/webrtc/depot_tools/src# cd ../
root@dualven-yangtianm4900c-00:/data/webrtc/depot_tools# ./ensure_bootstrap
如下:在193上的编译,大致能编译;
(2)./tools_webrtc/android/build_aar.py
参考下面buildaar
./tools_webrtc/android/build_aar.py \
--arch arm64-v8a \
--extra-gn-args 'treat_warnings_as_errors=false rtc_use_h265=true'
(3) 编译出来后,改名libwebrtc1217,然后放到工程中,可以编译成功。但
HardwareVideoEncoderFactory里面依然表示不支持h265.
(4)根据 下面章节 “引入工程2025-12-17"进行匹配级别的代码修改。
匹配级别的修改 (7877fbbe) · Commits · mesh / MyRtc-app · GitLab
【后述工作指导】
在此分支第一个提交上,先把环境弄好;
匹配:第一处提交有四五处修改,注意按2024年的修改加入进去;
第二处提交比较简单,把class放到aar里去。
引入工程2025-12-17

(1)注意新建立package 会与com.gbcom冲突,而不能debug
(2) 按之前的经验,对于打包发布也有影响 ,所以应该把生成的class 放到原包里做出新的包。

你观察得非常准确,这段 `HardwareVideoEncoderFactory` 源码**确实存在 H265 硬件编码支持的限制**。核心问题出在 `isHardwareSupportedInCurrentSdk()` 方法中对 `H265` 类型的硬编码判定逻辑。
### 核心问题分析
在 `isHardwareSupportedInCurrentSdk()` 方法的分支判断里,明确写了:
```java
case H265:
case AV1:
return false;
```
这意味着**即使设备硬件支持 H265 编码,这个工厂类也会直接返回不支持**,导致 `createEncoder()` 无法创建 H265 编码器实例。
出现这个问题的原因有两个:
1. **WebRTC 版本兼容性**:你编译的 WebRTC 源码可能是**较旧的分支**(比如 M90 之前的版本),这些版本的 `HardwareVideoEncoderFactory` 对 H265 硬件编码的支持还未完善,默认屏蔽了该逻辑。
2. **字段试验未生效**:即使编译时开启了 `rtc_use_h265=true`,如果没有通过**字段试验(FieldTrials)** 显式启用 H265 硬编码,代码中的 H265 分支也不会被激活。
### 解决方案:修改源码 + 配置字段试验
#### 步骤1:修改 `HardwareVideoEncoderFactory` 源码,启用 H265 硬编码
需要调整 `isHardwareSupportedInCurrentSdk()` 方法中 `H265` 的判断逻辑,让它支持高通/三星等主流芯片的 H265 硬件编码器:
```java
private boolean isHardwareSupportedInCurrentSdk(MediaCodecInfo info, VideoCodecMimeType type) {
if (VERSION.SDK_INT >= 29) {
return info.isHardwareAccelerated();
} else {
switch (type) {
case VP8:
return this.isHardwareSupportedInCurrentSdkVp8(info);
case VP9:
return this.isHardwareSupportedInCurrentSdkVp9(info);
case H264:
return this.isHardwareSupportedInCurrentSdkH264(info);
// ========== 新增 H265 支持分支 ==========
case H265:
String name = info.getName();
// 支持高通、三星、海思等主流芯片的 H265 编码器
return name.startsWith("OMX.qcom.")
|| name.startsWith("OMX.Exynos.")
|| name.startsWith("OMX.hisi.")
|| name.startsWith("OMX.MTK.");
case AV1:
return false;
default:
return false;
}
}
}
```
#### 步骤2:重新编译 WebRTC AAR
修改源码后,需要重新执行编译命令,生成包含 H265 硬编码支持的 AAR 包:
```bash
cd /data/webrtc/depot_tools/src
rm -rf out_aar
./tools_webrtc/android/build_aar.py \
--arch arm64-v8a \
--extra-gn-args 'treat_warnings_as_errors=false rtc_use_h265=true'
```
#### 步骤3:在 Android 项目中配置 H265 字段试验
初始化 `PeerConnectionFactory` 时,必须通过 `setFieldTrials` 显式启用 H265 相关特性,否则修改后的源码逻辑依然不会生效:
```java
// 关键:启用 H265 硬编码 + SDP 协商支持
String fieldTrials = "WebRTC-HEVC/Enabled/WebRTC-HEVC-HW-Encoding/Enabled/";
PeerConnectionFactory.InitializationOptions initOptions =
PeerConnectionFactory.InitializationOptions.builder(context)
.setEnableInternalTracer(true)
.setFieldTrials(fieldTrials) // 注入字段试验参数
.createInitializationOptions();
PeerConnectionFactory.initialize(initOptions);
```
#### 步骤4:自定义编码器工厂,强制优先选择 H265
为了确保 WebRTC 优先使用 H265 编码,可以自定义 `VideoEncoderFactory`,过滤掉 H264/VP8 等其他编码格式:
```java
public class H265PriorityEncoderFactory implements VideoEncoderFactory {
private final HardwareVideoEncoderFactory hardwareFactory;
public H265PriorityEncoderFactory(EglBase.Context eglContext) {
this.hardwareFactory = new HardwareVideoEncoderFactory(
eglContext,
true, // enableIntelVp8Encoder
true, // enableH264HighProfile
info -> info.getName().contains("hevc") // 只允许 H265 编码器
);
}
@Override
public VideoEncoder createEncoder(VideoCodecInfo input) {
// 只创建 H265 编码器
if (input.getName().equals(VideoCodecMimeType.H265.name())) {
return hardwareFactory.createEncoder(input);
}
return null;
}
@Override
public VideoCodecInfo[] getSupportedCodecs() {
// 只返回 H265 编码格式
return new VideoCodecInfo[]{
new VideoCodecInfo(VideoCodecMimeType.H265.name(), new HashMap<>())
};
}
}
```
然后在构建 `PeerConnectionFactory` 时使用这个自定义工厂:
```java
PeerConnectionFactory factory = PeerConnectionFactory.builder()
.setVideoEncoderFactory(new H265PriorityEncoderFactory(eglContext))
.setVideoDecoderFactory(new DefaultVideoDecoderFactory(eglContext))
.createPeerConnectionFactory();
```
### 验证 H265 硬编码是否生效
1. **日志验证**:初始化编码器后,打印支持的编码格式列表,确认包含 `H265`:
```java
VideoEncoderFactory encoderFactory = new H265PriorityEncoderFactory(eglContext);
VideoCodecInfo[] supported = encoderFactory.getSupportedCodecs();
for (VideoCodecInfo info : supported) {
Log.d("H265_ENCODER", "Supported codec: " + info.getName());
}
```
2. **抓包验证**:使用 Wireshark 抓取 RTP 流,查看负载中的 NALU 类型,H265 的 NALU 类型范围是 `0~63`,与 H264 的 `0~31` 有明显区别。
buildaar
./tools_webrtc/android/build_aar.py
INFO:root:Building: armeabi-v7a
Generating compile_commands took 475ms
Done. Made 7883 targets from 427 files in 3805ms
ninja: Entering directory `/data/webrtc/depot_tools/src/out_aar/armeabi-v7a'
Prioritizing last failed targets: [obj/third_party/jni_zero/jni_zero_java.javac.jar]
[37/2152] 7.48s F ACTION //third_party/jni_zero:jni_zero_java__compile_java(//build/toolchain/android:android_clang_arm)
FAILED: 580d3a39-afb7-4f91-a86b-4a715d2ab52f "./obj/third_party/jni_zero/jni_zero_java.javac.jar" ACTION //third_party/jni_zero:jni_zero_java__compile_java(//build/toolchain/android:android_clang_arm)
err: exit=1
vpython3 ../../build/android/gyp/compile_java.py --jar-path=obj/third_party/jni_zero/jni_zero_java.javac.jar --java-srcjars=\[\"gen/third_party/jni_zero/jni_zero_java.generated.srcjar\"\] --generated-dir=gen/third_party/jni_zero/jni_zero_java/generated_java --depfile=gen/third_party/jni_zero/jni_zero_java__compile_java.d --target-name //third_party/jni_zero:jni_zero_java__compile_java --classpath=@FileArg\(gen/third_party/jni_zero/jni_zero_java.javac.build_config.json:sdk_interface_jars\) --header-jar obj/third_party/jni_zero/jni_zero_java.turbine.jar --classpath=\[\"obj/third_party/jni_zero/jni_zero_java.turbine.jar\"\] --classpath=@FileArg\(gen/third_party/jni_zero/jni_zero_java.javac.build_config.json:javac_full_interface_classpath\) --warnings-as-errors @gen/third_party/jni_zero/jni_zero_java.sources
build step: __third_party_jni_zero_jni_zero_java__compile_java___build_toolchain_android_android_clang_arm__rule "./obj/third_party/jni_zero/jni_zero_java.javac.jar"
stderr:
注: ../../third_party/jni_zero/java/src/org/jni_zero/JniUtil.java使用了未经检查或不安全的操作。
注: 有关详细信息, 请使用 -Xlint:unchecked 重新编译。
Command failed because it wrote to stderr.
You can often set treat_warnings_as_errors=false to not treat output as failure (useful when developing locally).
build failed
local:38 remote:0 cache:0 cache-write:0(err:0) fallback:0 retry:0 skip:5185
fs: ops: 65863(err:4661) / r:892(err:0) 13.14MiB / w:28(err:0) 2.55KiB
1m00.13s Build Failure: 38 done, 1 failed, 2114 remaining - 0.63/s
1 steps failed: exit=1
see ./out_aar/armeabi-v7a/siso_output for full command line and output
or ./out_aar/armeabi-v7a/siso.INFO
use ./out_aar/armeabi-v7a/siso_failed_commands.sh to re-run failed commands
Traceback (most recent call last):
File "/data/webrtc/depot_tools/src/./tools_webrtc/android/build_aar.py", line 275, in <module>
sys.exit(main())
^^^^^^
File "/data/webrtc/depot_tools/src/./tools_webrtc/android/build_aar.py", line 268, in main
return BuildAar(args.build_dir, args.arch, args.output,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/webrtc/depot_tools/src/./tools_webrtc/android/build_aar.py", line 247, in BuildAar
Build(build_dir, arch, use_remoteexec, extra_gn_args,
File "/data/webrtc/depot_tools/src/./tools_webrtc/android/build_aar.py", line 204, in Build
_RunNinja(output_directory, ninja_args)
File "/data/webrtc/depot_tools/src/./tools_webrtc/android/build_aar.py", line 129, in _RunNinja
subprocess.check_call(cmd)
File "/root/.cache/vpython-root.0/store/cpython+l5fnajrvijf7cvdkjqmbicg3i8/contents/lib/python3.11/subprocess.py", line 413, in check_call
raise CalledProcessError(retcode, cmd)
subprocess.CalledProcessError: Command '['/data/webrtc/depot_tools/src/third_party/siso/cipd/siso', 'ninja', '-C', '/data/webrtc/depot_tools/src/out_aar/armeabi-v7a', 'sdk/android:libwebrtc', 'sdk/android:libjingle_peerconnection_so']' returned non-zero exit status 1.
root@dualven-yangtianm4900c-00:/data/webrtc/depot_tools/src# cd out_aar/
# 进入 src 目录
cd /data/webrtc/depot_tools/src
# 编译 ARM64 架构 AAR,关闭警告转错误,启用 H.265
./tools_webrtc/android/build_aar.py \
--arch arm64-v8a \
--extra-gn-args 'treat_warnings_as_errors=false rtc_use_h265=true rtc_include_h265_parser=true android_min_sdk_version=24'
./tools_webrtc/android/build_aar.py --arch arm64-v8a --extra-gn-args 'treat_warnings_as_errors=false rtc_use_h265=true rtc_include_h265_parser=true android_min_sdk_version=24'
INFO:root:Building: arm64-v8a
WARNING at the command-line "--args":1:250: Build argument has no effect.
target_os="android" is_debug=false is_component_build=false rtc_include_tests=false target_cpu="arm64" android_static_analysis="off" use_siso=true treat_warnings_as_errors=false rtc_use_h265=true rtc_include_h265_parser=true android_min_sdk_version=24
^-
The variable "android_min_sdk_version" was set as a build argument
but never appeared in a declare_args() block in any buildfile.
To view all possible args, run "gn args --list <out_dir>"
The build continued as if that argument was unspecified.
Generating compile_commands took 577ms
Done. Made 8114 targets from 429 files in 3488ms
ninja: Entering directory `/data/webrtc/depot_tools/src/out_aar/arm64-v8a'
2.68s load siso config
ninja: no work to do.
55.33s Build Succeeded: 0 steps - 0.00/s
INFO:root:Collecting common files.
INFO:root:Collecting: arm64-v8a
ERROR:root:unable to parse license_json = 'WARNING at build arg file (use "gn args <out_dir>" to edit):11:27: Build argument has no effect.
android_min_sdk_version = 24
^-
The variable "android_min_sdk_version" was set as a build argument
but never appeared in a declare_args() block in any buildfile.
To view all possible args, run "gn args --list <out_dir>"
The build continued as if that argument was unspecified.
{
"//sdk/android:libwebrtc": {
"args": [ "--depfile", "gen/sdk/android/libwebrtc.d", "--output", "lib.java/sdk/android/libwebrtc.jar", "--no-compress", "--input-zips=@FileArg(gen/sdk/android/libwebrtc.build_config.json:dist_classpath)", "--input-zips-excluded-globs=[\"module-info.class\", \"META-INF/*.MF\"]" ],
"depfile": "//out_aar/arm64-v8a/gen/sdk/android/libwebrtc.d",
"deps": [ "//api:priority_enums", "//api/video:video_frame_enums", "//build/android:build_java", "//build/android:build_java__assetres", "//build/android:build_java__build_config_crbug_908819", "//build/android:build_java__compile_java", "//build/android:build_java__dex", "//build/android:build_java__header", "//build/android:build_java__host", "//build/android:build_java__validate", "//build/android:native_libraries_gen", "//build/android:placeholder_build_config_srcjar", "//build/config:common_deps(//build/toolchain/linux:clang_x64)", "//build/config:common_deps_without_libcxx(//build/toolchain/linux:clang_x64)", "//build/config:executable_deps(//build/toolchain/linux:clang_x64)", "//build/config:toolchain_marker_clang_x64(//build/toolchain/linux:clang_x64)", "//build/modules/linux:_Builtin_float(//build/toolchain/linux:clang_x64)", "//build/modules/linux:_Builtin_intrinsics(//build/toolchain/linux:clang_x64)", "//build/modules/linux:_Builtin_inttypes(//build/toolchain/linux:clang_x64)", "//build/modules/linux:_Builtin_iso646(//build/toolchain/linux:clang_x64)", "//build/modules/linux:_Builtin_limits(//build/toolchain/linux:clang_x64)", "//build/modules/linux:_Builtin_stdalign(//build/toolchain/linux:clang_x64)", "//build/modules/linux:_Builtin_stdarg(//build/toolchain/linux:clang_x64)", "//build/modules/linux:_Builtin_stdatomic(//build/toolchain/linux:clang_x64)", "//build/modules/linux:_Builtin_stdbool(//build/toolchain/linux:clang_x64)", "//build/modules/linux:_Builtin_stdcountof(//build/toolchain/linux:clang_x64)", "//build/modules/linux:_Builtin_stddef(//build/toolchain/linux:clang_x64)", "//build/modules/linux:_Builtin_stddef_wint_t(//build/toolchain/linux:clang_x64)", "//build/modules/linux:_Builtin_stdint(//build/toolchain/linux:clang_x64)", "//build/modules/linux:_Builtin_stdnoreturn(//build/toolchain/linux:clang_x64)", "//build/modules/linux:_Builtin_unwind(//build/toolchain/linux:clang_x64)", "//build/modules/linux:all_modules(//build/toolchain/linux:clang_x64)", "//build/modules/linux:ptrauth(//build/toolchain/linux:clang_x64)", "//build/modules/linux:std(//build/toolchain/linux:clang_x64)", "//build/modules/linux:std_complex_h(//build/toolchain/linux:clang_x64)", "//build/modules/linux:std_core(//build/toolchain/linux:clang_x64)", "//build/modules/linux:std_ctype_h(//build/toolchain/linux:clang_x64)", "//build/modules/linux:std_errno_h(//build/toolchain/linux:clang_x64)", "//build/modules/linux:std_fenv_h(//build/toolchain/linux:clang_x64)", "//build/modules/linux:std_float_h(//build/toolchain/linux:clang_x64)", "//build/modules/linux:std_inttypes_h(//build/toolchain/linux:clang_x64)", "//build/modules/linux:std_math_h(//build/toolchain/linux:clang_x64)", "//build/modules/linux:std_private_mbstate_t(//build/toolchain/linux:clang_x64)", "//build/modules/linux:std_stdatomic_h(//build/toolchain/linux:clang_x64)", "//build/modules/linux:std_string_h(//build/toolchain/linux:clang_x64)", "//build/modules/linux:std_tgmath_h(//build/toolchain/linux:clang_x64)", "//build/modules/linux:std_uchar_h(//build/toolchain/linux:clang_x64)", "//build/modules/linux:std_wctype_h(//build/toolchain/linux:clang_x64)", "//build/modules/linux:sys_stage1(//build/toolchain/linux:clang_x64)", "//build/modules/linux:sys_stage2(//build/toolchain/linux:clang_x64)", "//buildtools/third_party/libc++:all_modules(//build/toolchain/linux:clang_x64)", "//buildtools/third_party/libc++:copy_custom_headers", "//buildtools/third_party/libc++:copy_libcxx_headers", "//buildtools/third_party/libc++:custom_headers(//build/toolchain/linux:clang_x64)", "//buildtools/third_party/libc++:libc++(//build/toolchain/linux:clang_x64)", "//buildtools/third_party/libc++:libcxx_headers(//build/toolchain/linux:clang_x64)", "//buildtools/third_party/libc++abi:libc++abi(//build/toolchain/linux:clang_x64)", "//rtc_base:base_java", "//rtc_base:base_java__assetres", "//rtc_base:base_java__build_config_crbug_908819", "//rtc_base:base_java__compile_java", "//rtc_base:base_java__dex", "//rtc_base:base_java__header", "//rtc_base:base_java__host", "//rtc_base:base_java__validate", "//rtc_base:network_monitor_enums", "//sdk/android:audio_api_java", "//sdk/android:audio_api_java__assetres", "//sdk/android:audio_api_java__build_config_crbug_908819", "//sdk/android:audio_api_java__compile_java", "//sdk/android:audio_api_java__dex", "//sdk/android:audio_api_java__header", "//sdk/android:audio_api_java__host", "//sdk/android:audio_api_java__validate", "//sdk/android:base_java", "//sdk/android:base_java__assetres", "//sdk/android:base_java__build_config_crbug_908819", "//sdk/android:base_java__compile_java", "//sdk/android:base_java__dex", "//sdk/android:base_java__header", "//sdk/android:base_java__host", "//sdk/android:base_java__validate", "//sdk/android:builtin_audio_codecs_java", "//sdk/android:builtin_audio_codecs_java__assetres", "//sdk/android:builtin_audio_codecs_java__build_config_crbug_908819", "//sdk/android:builtin_audio_codecs_java__compile_java", "//sdk/android:builtin_audio_codecs_java__dex", "//sdk/android:builtin_audio_codecs_java__header", "//sdk/android:builtin_audio_codecs_java__host", "//sdk/android:builtin_audio_codecs_java__validate", "//sdk/android:camera_java", "//sdk/android:camera_java__assetres", "//sdk/android:camera_java__build_config_crbug_908819", "//sdk/android:camera_java__compile_java", "//sdk/android:camera_java__dex", "//sdk/android:camera_java__header", "//sdk/android:camera_java__host", "//sdk/android:camera_java__validate", "//sdk/android:dav1d_java", "//sdk/android:dav1d_java__assetres", "//sdk/android:dav1d_java__build_config_crbug_908819", "//sdk/android:dav1d_java__compile_java", "//sdk/android:dav1d_java__dex", "//sdk/android:dav1d_java__header", "//sdk/android:dav1d_java__host", "//sdk/android:dav1d_java__validate", "//sdk/android:default_video_codec_factory_java", "//sdk/android:default_video_codec_factory_java__assetres", "//sdk/android:default_video_codec_factory_java__build_config_crbug_908819", "//sdk/android:default_video_codec_factory_java__compile_java", "//sdk/android:default_video_codec_factory_java__dex", "//sdk/android:default_video_codec_factory_java__header", "//sdk/android:default_video_codec_factory_java__host", "//sdk/android:default_video_codec_factory_java__validate", "//sdk/android:environment_java", "//sdk/android:environment_java__assetres", "//sdk/android:environment_java__build_config_crbug_908819", "//sdk/android:environment_java__compile_java", "//sdk/android:environment_java__dex", "//sdk/android:environment_java__header", "//sdk/android:environment_java__host", "//sdk/android:environment_java__validate", "//sdk/android:filevideo_java", "//sdk/android:filevideo_java__assetres", "//sdk/android:filevideo_java__build_config_crbug_908819", "//sdk/android:filevideo_java__compile_java", "//sdk/android:filevideo_java__dex", "//sdk/android:filevideo_java__header", "//sdk/android:filevideo_java__host", "//sdk/android:filevideo_java__validate", "//sdk/android:generated_J_audio_device_module_native_jni__action", "//sdk/android:generated_J_audio_jni__action", "//sdk/android:generated_audio_device_module_base_jni__action", "//sdk/android:generated_audio_device_module_base_jni_java", "//sdk/android:generated_audio_device_module_base_jni_java__assetres", "//sdk/android:generated_audio_device_module_base_jni_java__build_config_crbug_908819", "//sdk/android:generated_audio_device_module_base_jni_java__compile_java", "//sdk/android:generated_audio_device_module_base_jni_java__dex", "//sdk/android:generated_audio_device_module_base_jni_java__header", "//sdk/android:generated_audio_device_module_base_jni_java__host", "//sdk/android:generated_audio_device_module_base_jni_java__validate", "//sdk/android:generated_base_jni__action", "//sdk/android:generated_base_jni_java", "//sdk/android:generated_base_jni_java__assetres", "//sdk/android:generated_base_jni_java__build_config_crbug_908819", "//sdk/android:generated_base_jni_java__compile_java", "//sdk/android:generated_base_jni_java__dex", "//sdk/android:generated_base_jni_java__header", "//sdk/android:generated_base_jni_java__host", "//sdk/android:generated_base_jni_java__validate", "//sdk/android:generated_builtin_audio_codecs_jni__action", "//sdk/android:generated_builtin_audio_codecs_jni_java", "//sdk/android:generated_builtin_audio_codecs_jni_java__assetres", "//sdk/android:generated_builtin_audio_codecs_jni_java__build_config_crbug_908819", "//sdk/android:generated_builtin_audio_codecs_jni_java__compile_java", "//sdk/android:generated_builtin_audio_codecs_jni_java__dex", "//sdk/android:generated_builtin_audio_codecs_jni_java__header", "//sdk/android:generated_builtin_audio_codecs_jni_java__host", "//sdk/android:generated_builtin_audio_codecs_jni_java__validate", "//sdk/android:generated_dav1d_jni__action", "//sdk/android:generated_dav1d_jni_java", "//sdk/android:generated_dav1d_jni_java__assetres", "//sdk/android:generated_dav1d_jni_java__build_config_crbug_908819", "//sdk/android:generated_dav1d_jni_java__compile_java", "//sdk/android:generated_dav1d_jni_java__dex", "//sdk/android:generated_dav1d_jni_java__header", "//sdk/android:generated_dav1d_jni_java__host", "//sdk/android:generated_dav1d_jni_java__validate", "//sdk/android:generated_environment_jni__action", "//sdk/android:generated_environment_jni_java", "//sdk/android:generated_environment_jni_java__assetres", "//sdk/android:generated_environment_jni_java__build_config_crbug_908819", "//sdk/android:generated_environment_jni_java__compile_java", "//sdk/android:generated_environment_jni_java__dex", "//sdk/android:generated_environment_jni_java__header", "//sdk/android:generated_environment_jni_java__host", "//sdk/android:generated_environment_jni_java__validate", "//sdk/android:generated_java_audio_device_module_native_jni_java", "//sdk/android:generated_java_audio_device_module_native_jni_java__assetres", "//sdk/android:generated_java_audio_device_module_native_jni_java__build_config_crbug_908819", "//sdk/android:generated_java_audio_device_module_native_jni_java__compile_java", "//sdk/android:generated_java_audio_device_module_native_jni_java__dex", "//sdk/android:generated_java_audio_device_module_native_jni_java__header", "//sdk/android:generated_java_audio_device_module_native_jni_java__host", "//sdk/android:generated_java_audio_device_module_native_jni_java__validate", "//sdk/android:generated_java_audio_jni_java", "//sdk/android:generated_java_audio_jni_java__assetres", "//sdk/android:generated_java_audio_jni_java__build_config_crbug_908819", "//sdk/android:generated_java_audio_jni_java__compile_java", "//sdk/android:generated_java_audio_jni_java__dex", "//sdk/android:generated_java_audio_jni_java__header", "//sdk/android:generated_java_audio_jni_java__host", "//sdk/android:generated_java_audio_jni_java__validate", "//sdk/android:generated_libaom_av1_encoder_jni__action", "//sdk/android:generated_libaom_av1_encoder_jni_java", "//sdk/android:generated_libaom_av1_encoder_jni_java__assetres", "//sdk/android:generated_libaom_av1_encoder_jni_java__build_config_crbug_908819", "//sdk/android:generated_libaom_av1_encoder_jni_java__compile_java", "//sdk/android:generated_libaom_av1_encoder_jni_java__dex", "//sdk/android:generated_libaom_av1_encoder_jni_java__header", "//sdk/android:generated_libaom_av1_encoder_jni_java__host", "//sdk/android:generated_libaom_av1_encoder_jni_java__validate", "//sdk/android:generated_libvpx_vp8_jni__action", "//sdk/android:generated_libvpx_vp8_jni_java", "//sdk/android:generated_libvpx_vp8_jni_java__assetres", "//sdk/android:generated_libvpx_vp8_jni_java__build_config_crbug_908819", "//sdk/android:generated_libvpx_vp8_jni_java__compile_java", "//sdk/android:generated_libvpx_vp8_jni_java__dex", "//sdk/android:generated_libvpx_vp8_jni_java__header", "//sdk/android:generated_libvpx_vp8_jni_java__host", "//sdk/android:generated_libvpx_vp8_jni_java__validate", "//sdk/android:generated_libvpx_vp9_jni__action", "//sdk/android:generated_libvpx_vp9_jni_java", "//sdk/android:generated_libvpx_vp9_jni_java__assetres", "//sdk/android:generated_libvpx_vp9_jni_java__build_config_crbug_908819", "//sdk/android:generated_libvpx_vp9_jni_java__compile_java", "//sdk/android:generated_libvpx_vp9_jni_java__dex", "//sdk/android:generated_libvpx_vp9_jni_java__header", "//sdk/android:generated_libvpx_vp9_jni_java__host", "//sdk/android:generated_libvpx_vp9_jni_java__validate", "//sdk/android:generated_logging_jni__action", "//sdk/android:generated_logging_jni_java", "//sdk/android:generated_logging_jni_java__assetres", "//sdk/android:generated_logging_jni_java__build_config_crbug_908819", "//sdk/android:generated_logging_jni_java__compile_java", "//sdk/android:generated_logging_jni_java__dex", "//sdk/android:generated_logging_jni_java__header", "//sdk/android:generated_logging_jni_java__host", "//sdk/android:generated_logging_jni_java__validate", "//sdk/android:generated_metrics_jni__action", "//sdk/android:generated_metrics_jni_java", "//sdk/android:generated_metrics_jni_java__assetres", "//sdk/android:generated_metrics_jni_java__build_config_crbug_908819", "//sdk/android:generated_metrics_jni_java__compile_java", "//sdk/android:generated_metrics_jni_java__dex", "//sdk/android:generated_metrics_jni_java__header", "//sdk/android:generated_metrics_jni_java__host", "//sdk/android:generated_metrics_jni_java__validate", "//sdk/android:generated_native_api_jni", "//sdk/android:generated_native_api_jni__action", "//sdk/android:generated_native_api_jni_java", "//sdk/android:generated_native_api_jni_java__assetres", "//sdk/android:generated_native_api_jni_java__build_config_crbug_908819", "//sdk/android:generated_native_api_jni_java__compile_java", "//sdk/android:generated_native_api_jni_java__dex", "//sdk/android:generated_native_api_jni_java__header", "//sdk/android:generated_native_api_jni_java__host", "//sdk/android:generated_native_api_jni_java__validate", "//sdk/android:generated_peerconnection_jni__action", "//sdk/android:generated_peerconnection_jni_java", "//sdk/android:generated_peerconnection_jni_java__assetres", "//sdk/android:generated_peerconnection_jni_java__build_config_crbug_908819", "//sdk/android:generated_peerconnection_jni_java__compile_java", "//sdk/android:generated_peerconnection_jni_java__dex", "//sdk/android:generated_peerconnection_jni_java__header", "//sdk/android:generated_peerconnection_jni_java__host", "//sdk/android:generated_peerconnection_jni_java__validate", "//sdk/android:generated_rtcerror_jni__action", "//sdk/android:generated_rtcerror_jni_java", "//sdk/android:generated_rtcerror_jni_java__assetres", "//sdk/android:generated_rtcerror_jni_java__build_config_crbug_908819", "//sdk/android:generated_rtcerror_jni_java__compile_java", "//sdk/android:generated_rtcerror_jni_java__dex", "//sdk/android:generated_rtcerror_jni_java__header", "//sdk/android:generated_rtcerror_jni_java__host", "//sdk/android:generated_rtcerror_jni_java__validate", "//sdk/android:generated_swcodecs_jni__action", "//sdk/android:generated_swcodecs_jni_java", "//sdk/android:generated_swcodecs_jni_java__assetres", "//sdk/android:generated_swcodecs_jni_java__build_config_crbug_908819", "//sdk/android:generated_swcodecs_jni_java__compile_java", "//sdk/android:generated_swcodecs_jni_java__dex", "//sdk/android:generated_swcodecs_jni_java__header", "//sdk/android:generated_swcodecs_jni_java__host", "//sdk/android:generated_swcodecs_jni_java__validate", "//sdk/android:generated_video_egl_jni__action", "//sdk/android:generated_video_egl_jni_java", "//sdk/android:generated_video_egl_jni_java__assetres", "//sdk/android:generated_video_egl_jni_java__build_config_crbug_908819", "//sdk/android:generated_video_egl_jni_java__compile_java", "//sdk/android:generated_video_egl_jni_java__dex", "//sdk/android:generated_video_egl_jni_java__header", "//sdk/android:generated_video_egl_jni_java__host", "//sdk/android:generated_video_egl_jni_java__validate", "//sdk/android:generated_video_jni__action", "//sdk/android:generated_video_jni_java", "//sdk/android:generated_video_jni_java__assetres", "//sdk/android:generated_video_jni_java__build_config_crbug_908819", "//sdk/android:generated_video_jni_java__compile_java", "//sdk/android:generated_video_jni_java__dex", "//sdk/android:generated_video_jni_java__header", "//sdk/android:generated_video_jni_java__host", "//sdk/android:generated_video_jni_java__validate", "//sdk/android:hwcodecs_java", "//sdk/android:hwcodecs_java__assetres", "//sdk/android:hwcodecs_java__build_config_crbug_908819", "//sdk/android:hwcodecs_java__compile_java", "//sdk/android:hwcodecs_java__dex", "//sdk/android:hwcodecs_java__header", "//sdk/android:hwcodecs_java__host", "//sdk/android:hwcodecs_java__validate", "//sdk/android:java_audio_device_module_java", "//sdk/android:java_audio_device_module_java__assetres", "//sdk/android:java_audio_device_module_java__build_config_crbug_908819", "//sdk/android:java_audio_device_module_java__compile_java", "//sdk/android:java_audio_device_module_java__dex", "//sdk/android:java_audio_device_module_java__header", "//sdk/android:java_audio_device_module_java__host", "//sdk/android:java_audio_device_module_java__validate", "//sdk/android:libaom_av1_encoder_java", "//sdk/android:libaom_av1_encoder_java__assetres", "//sdk/android:libaom_av1_encoder_java__build_config_crbug_908819", "//sdk/android:libaom_av1_encoder_java__compile_java", "//sdk/android:libaom_av1_encoder_java__dex", "//sdk/android:libaom_av1_encoder_java__header", "//sdk/android:libaom_av1_encoder_java__host", "//sdk/android:libaom_av1_encoder_java__validate", "//sdk/android:libjingle_peerconnection_java", "//sdk/android:libjingle_peerconnection_java__assetres", "//sdk/android:libjingle_peerconnection_java__build_config_crbug_908819", "//sdk/android:libjingle_peerconnection_java__compile_java", "//sdk/android:libjingle_peerconnection_java__dex", "//sdk/android:libjingle_peerconnection_java__header", "//sdk/android:libjingle_peerconnection_java__host", "//sdk/android:libjingle_peerconnection_java__validate", "//sdk/android:libjingle_peerconnection_metrics_default_java", "//sdk/android:libjingle_peerconnection_metrics_default_java__assetres", "//sdk/android:libjingle_peerconnection_metrics_default_java__build_config_crbug_908819", "//sdk/android:libjingle_peerconnection_metrics_default_java__compile_java", "//sdk/android:libjingle_peerconnection_metrics_default_java__dex", "//sdk/android:libjingle_peerconnection_metrics_default_java__header", "//sdk/android:libjingle_peerconnection_metrics_default_java__host", "//sdk/android:libjingle_peerconnection_metrics_default_java__validate", "//sdk/android:libvpx_vp8_java", "//sdk/android:libvpx_vp8_java__assetres", "//sdk/android:libvpx_vp8_java__build_config_crbug_908819", "//sdk/android:libvpx_vp8_java__compile_java", "//sdk/android:libvpx_vp8_java__dex", "//sdk/android:libvpx_vp8_java__header", "//sdk/android:libvpx_vp8_java__host", "//sdk/android:libvpx_vp8_java__validate", "//sdk/android:libvpx_vp9_java", "//sdk/android:libvpx_vp9_java__assetres", "//sdk/android:libvpx_vp9_java__build_config_crbug_908819", "//sdk/android:libvpx_vp9_java__compile_java", "//sdk/android:libvpx_vp9_java__dex", "//sdk/android:libvpx_vp9_java__header", "//sdk/android:libvpx_vp9_java__host", "//sdk/android:libvpx_vp9_java__validate", "//sdk/android:libwebrtc__build_config_crbug_908819", "//sdk/android:logging_java", "//sdk/android:logging_java__assetres", "//sdk/android:logging_java__build_config_crbug_908819", "//sdk/android:logging_java__compile_java", "//sdk/android:logging_java__dex", "//sdk/android:logging_java__header", "//sdk/android:logging_java__host", "//sdk/android:logging_java__validate", "//sdk/android:peerconnection_java", "//sdk/android:peerconnection_java__assetres", "//sdk/android:peerconnection_java__build_config_crbug_908819", "//sdk/android:peerconnection_java__compile_java", "//sdk/android:peerconnection_java__dex", "//sdk/android:peerconnection_java__header", "//sdk/android:peerconnection_java__host", "//sdk/android:peerconnection_java__validate", "//sdk/android:screencapturer_java", "//sdk/android:screencapturer_java__assetres", "//sdk/android:screencapturer_java__build_config_crbug_908819", "//sdk/android:screencapturer_java__compile_java", "//sdk/android:screencapturer_java__dex", "//sdk/android:screencapturer_java__header", "//sdk/android:screencapturer_java__host", "//sdk/android:screencapturer_java__validate", "//sdk/android:surfaceviewrenderer_java", "//sdk/android:surfaceviewrenderer_java__assetres", "//sdk/android:surfaceviewrenderer_java__build_config_crbug_908819", "//sdk/android:surfaceviewrenderer_java__compile_java", "//sdk/android:surfaceviewrenderer_java__dex", "//sdk/android:surfaceviewrenderer_java__header", "//sdk/android:surfaceviewrenderer_java__host", "//sdk/android:surfaceviewrenderer_java__validate", "//sdk/android:swcodecs_java", "//sdk/android:swcodecs_java__assetres", "//sdk/android:swcodecs_java__build_config_crbug_908819", "//sdk/android:swcodecs_java__compile_java", "//sdk/android:swcodecs_java__dex", "//sdk/android:swcodecs_java__header", "//sdk/android:swcodecs_java__host", "//sdk/android:swcodecs_java__validate", "//sdk/android:video_api_java", "//sdk/android:video_api_java__assetres", "//sdk/android:video_api_java__build_config_crbug_908819", "//sdk/android:video_api_java__compile_java", "//sdk/android:video_api_java__dex", "//sdk/android:video_api_java__header", "//sdk/android:video_api_java__host", "//sdk/android:video_api_java__validate", "//sdk/android:video_java", "//sdk/android:video_java__assetres", "//sdk/android:video_java__build_config_crbug_908819", "//sdk/android:video_java__compile_java", "//sdk/android:video_java__dex", "//sdk/android:video_java__header", "//sdk/android:video_java__host", "//sdk/android:video_java__validate", "//third_party/android_sdk:android_sdk_java", "//third_party/android_sdk:android_sdk_java__header", "//third_party/android_sdk:android_sdk_java__host", "//third_party/android_sdk:android_sdk_java__validate", "//third_party/androidx:androidx_annotation_annotation_java", "//third_party/androidx:androidx_annotation_annotation_java__assetres", "//third_party/androidx:androidx_annotation_annotation_java__header", "//third_party/androidx:androidx_annotation_annotation_java__host", "//third_party/androidx:androidx_annotation_annotation_java__validate", "//third_party/androidx:androidx_annotation_annotation_jvm_java", "//third_party/androidx:androidx_annotation_annotation_jvm_java__assetres", "//third_party/androidx:androidx_annotation_annotation_jvm_java__build_config_crbug_908819", "//third_party/androidx:androidx_annotation_annotation_jvm_java__dex", "//third_party/androidx:androidx_annotation_annotation_jvm_java__filter_jar", "//third_party/androidx:androidx_annotation_annotation_jvm_java__header", "//third_party/androidx:androidx_annotation_annotation_jvm_java__host", "//third_party/androidx:androidx_annotation_annotation_jvm_java__validate", "//third_party/compiler-rt:atomic(//build/toolchain/linux:clang_x64)", "//third_party/ijar:ijar(//build/toolchain/linux:clang_x64)", "//third_party/jni_zero:gendeps_java", "//third_party/jni_zero:gendeps_java__assetres", "//third_party/jni_zero:gendeps_java__build_config_crbug_908819", "//third_party/jni_zero:gendeps_java__compile_java", "//third_party/jni_zero:gendeps_java__dex", "//third_party/jni_zero:gendeps_java__header", "//third_party/jni_zero:gendeps_java__host", "//third_party/jni_zero:gendeps_java__validate", "//third_party/jni_zero:generate_jni__action", "//third_party/jni_zero:generate_jni_java", "//third_party/jni_zero:generate_jni_java__assetres", "//third_party/jni_zero:generate_jni_java__build_config_crbug_908819", "//third_party/jni_zero:generate_jni_java__compile_java", "//third_party/jni_zero:generate_jni_java__dex", "//third_party/jni_zero:generate_jni_java__header", "//third_party/jni_zero:generate_jni_java__host", "//third_party/jni_zero:generate_jni_java__validate", "//third_party/jni_zero:jni_zero_java", "//third_party/jni_zero:jni_zero_java__assetres", "//third_party/jni_zero:jni_zero_java__build_config_crbug_908819", "//third_party/jni_zero:jni_zero_java__compile_java", "//third_party/jni_zero:jni_zero_java__dex", "//third_party/jni_zero:jni_zero_java__header", "//third_party/jni_zero:jni_zero_java__host", "//third_party/jni_zero:jni_zero_java__validate", "//third_party/kotlin_stdlib:kotlin_stdlib_java", "//third_party/kotlin_stdlib:kotlin_stdlib_java__assetres", "//third_party/kotlin_stdlib:kotlin_stdlib_java__build_config_crbug_908819", "//third_party/kotlin_stdlib:kotlin_stdlib_java__dex", "//third_party/kotlin_stdlib:kotlin_stdlib_java__header", "//third_party/kotlin_stdlib:kotlin_stdlib_java__host", "//third_party/kotlin_stdlib:kotlin_stdlib_java__validate", "//third_party/llvm-libc:llvm-libc-shared(//build/toolchain/linux:clang_x64)", "//third_party/zlib:zlib(//build/toolchain/linux:clang_x64)", "//third_party/zlib:zlib_adler32_simd(//build/toolchain/linux:clang_x64)", "//third_party/zlib:zlib_common_headers(//build/toolchain/linux:clang_x64)", "//third_party/zlib:zlib_crc32_simd(//build/toolchain/linux:clang_x64)", "//third_party/zlib:zlib_data_chunk_simd(//build/toolchain/linux:clang_x64)", "//third_party/zlib:zlib_slide_hash_simd(//build/toolchain/linux:clang_x64)" ],
"inputs": [ "//out_aar/arm64-v8a/gen/sdk/android/libwebrtc.build_config.json", "//build/action_helpers.py", "//build/gn_helpers.py", "//build/zip_helpers.py", "//build/android/gyp/util/__init__.py", "//build/android/gyp/util/build_utils.py", "//build/android/gyp/zip.py" ],
"metadata": {
},
"outputs": [ "//out_aar/arm64-v8a/lib.java/sdk/android/libwebrtc.jar" ],
"public": "*",
"script": "//build/android/gyp/zip.py",
"testonly": false,
"toolchain": "//build/toolchain/android:android_clang_arm64",
"type": "action",
"visibility": [ "*" ]
}
}
'
Traceback (most recent call last):
File "/data/webrtc/depot_tools/src/./tools_webrtc/android/build_aar.py", line 275, in <module>
sys.exit(main())
^^^^^^
File "/data/webrtc/depot_tools/src/./tools_webrtc/android/build_aar.py", line 268, in main
return BuildAar(args.build_dir, args.arch, args.output,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/webrtc/depot_tools/src/./tools_webrtc/android/build_aar.py", line 257, in BuildAar
GenerateLicenses(license_dir, build_dir, archs)
File "/data/webrtc/depot_tools/src/./tools_webrtc/android/build_aar.py", line 231, in GenerateLicenses
builder.generate_license_text(output_dir)
File "/data/webrtc/depot_tools/src/tools_webrtc/android/../libs/generate_licenses.py", line 217, in generate_license_text
third_party_libs |= self._get_third_party_libraries(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/data/webrtc/depot_tools/src/tools_webrtc/android/../libs/generate_licenses.py", line 200, in _get_third_party_libraries
output = json.loads(license_json)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/.cache/vpython-root.0/store/cpython+l5fnajrvijf7cvdkjqmbicg3i8/contents/lib/python3.11/json/__init__.py", line 346, in loads
return _default_decoder.decode(s)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/.cache/vpython-root.0/store/cpython+l5fnajrvijf7cvdkjqmbicg3i8/contents/lib/python3.11/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/root/.cache/vpython-root.0/store/cpython+l5fnajrvijf7cvdkjqmbicg3i8/contents/lib/python3.11/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
./tools_webrtc/android/build_aar.py \
--arch arm64-v8a \
--extra-gn-args 'treat_warnings_as_errors=false rtc_use_h265=true'
src目录下生成了libwebrtc.aar!
2025-12-17继续在新环境193上编译
统编
root@dualven-yangtianm4900c-00:/data/webrtc/depot_tools/src# gn gen out/Debug --args='target_os="android" target_cpu="arm"'
python3_bin_reldir.txt not found. need to initialize depot_tools by
running gclient, update_depot_tools or ensure_bootstrap.
root@dualven-yangtianm4900c-00:/data/webrtc/depot_tools/src# cd ../
root@dualven-yangtianm4900c-00:/data/webrtc/depot_tools# ./ensure_bootstrap
root@dualven-yangtianm4900c-00:/data/webrtc/depot_tools# cd src
root@dualven-yangtianm4900c-00:/data/webrtc/depot_tools/src# gn gen out/Debug --args='target_os="android" target_cpu="arm"'
root@dualven-yangtianm4900c-00:/data/webrtc/depot_tools/src# autoninja -C out/Debug
offline mode
ninja: Entering directory `out/Debug'
1.47s load siso config
[4000/10585] 7m48.12s F ACTION //sdk/android:base_java__compile_java(//build/toolchain/android:android_clang_arm)
FAILED: 4e6de546-8c54-49b2-97c9-b5538f7c7c95 "./obj/sdk/android/base_java.javac.jar" ACTION //sdk/android:base_java__compile_java(//build/toolchain/android:android_clang_arm)
err: exit=1
vpython3 ../../build/android/gyp/compile_java.py --jar-path=obj/sdk/android/base_java.javac.jar --java-srcjars=\[\"gen/sdk/android/generated_native_api_jni.srcjar\",\ \"gen/sdk/android/base_java.generated.srcjar\"\] --generated-dir=gen/sdk/android/base_java/generated_java --depfile=gen/sdk/android/base_java__compile_java.d --target-name //sdk/android:base_java__compile_java --classpath=@FileArg\(gen/sdk/android/base_java.javac.build_config.json:sdk_interface_jars\) --header-jar obj/sdk/android/base_java.turbine.jar --classpath=\[\"obj/sdk/android/base_java.turbine.jar\"\] --classpath=@FileArg\(gen/sdk/android/base_java.javac.build_config.json:javac_full_interface_classpath\) --chromium-code --warnings-as-errors --jar-exclude-globs=\[\"\*/\*GEN_JNI.class\"\] --filtered-jar=obj/sdk/android/base_java.compliment.jar @gen/sdk/android/base_java.sources
build step: __sdk_android_base_java__compile_java___build_toolchain_android_android_clang_arm__rule "./obj/sdk/android/base_java.javac.jar"
stderr:
注: 某些输入文件使用或覆盖了已过时的 API。
注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
Command failed because it wrote to stderr.
You can often set treat_warnings_as_errors=false to not treat output as failure (useful when developing locally).
[4000/10585] 7m48.12s F ACTION //tools/android/errorprone_plugin:errorprone_plugin__compile_java(//build/toolchain/android:android_clang_arm)
FAILED: c7e37f4a-97fe-4394-b600-7e6b563da048 "./obj/tools/android/errorprone_plugin/errorprone_plugin.javac.jar" ACTION //tools/android/errorprone_plugin:errorprone_plugin__compile_java(//build/toolchain/android:android_clang_arm)
err: exit=1
vpython3 ../../build/android/gyp/compile_java.py --jar-path=obj/tools/android/errorprone_plugin/errorprone_plugin.javac.jar --java-srcjars=\[\"gen/tools/android/errorprone_plugin/errorprone_plugin.generated.srcjar\"\] --generated-dir=gen/tools/android/errorprone_plugin/errorprone_plugin/generated_java --depfile=gen/tools/android/errorprone_plugin/errorprone_plugin__compile_java.d --target-name //tools/android/errorprone_plugin:errorprone_plugin__compile_java --header-jar obj/tools/android/errorprone_plugin/errorprone_plugin.turbine.jar --classpath=\[\"obj/tools/android/errorprone_plugin/errorprone_plugin.turbine.jar\"\] --classpath=@FileArg\(gen/tools/android/errorprone_plugin/errorprone_plugin.javac.build_config.json:javac_full_interface_classpath\) --chromium-code --warnings-as-errors @gen/tools/android/errorprone_plugin/errorprone_plugin.sources
build step: __tools_android_errorprone_plugin_errorprone_plugin__compile_java___build_toolchain_android_android_clang_arm__rule "./obj/tools/android/errorprone_plugin/errorprone_plugin.javac.jar"
stderr:
注: ../../tools/android/errorprone_plugin/src/org/chromium/tools/errorprone/plugin/NoSynchronizedMethodCheck.java使用或覆盖了已过时的 API。
注: 有关详细信息, 请使用 -Xlint:deprecation 重新编译。
Command failed because it wrote to stderr.
You can often set treat_warnings_as_errors=false to not treat output as failure (useful when developing locally).
build failed
local:4004 remote:0 cache:0 cache-write:0(err:0) fallback:0 retry:0 skip:2453
fs: ops: 142324(err:33560) / r:20764(err:0) 932.06MiB / w:1387(err:0) 8.00MiB
resource/capa used(err) wait-avg | s m | serv-avg | s m |
localexec/4 2305(0) 1m00.60s |▂▃▃▄▆█ | 0.79s |▂▅█▃▂ |
pool=action/4 588(2) 54.74s |▃▂▃▅██ | 2.05s | █▆▂ |
7m49.76s Build Failure: 4004 done, 2 failed, 6576 remaining - 8.52/s
2 steps failed: exit=1
see ./out/Debug/siso_output for full command line and output
or ./out/Debug/siso.INFO
use ./out/Debug/siso_failed_commands.sh to re-run failed commands
⏩ There is still 1 static analysis job running in the background.
⏩ To wait for them: build/android/fast_local_dev_server.py --wait-for-idle
下载
(1) windows ,centos上都会报错
(2) ubuntu
A : 在git上设置代理
B fetch通过 ubuntu的界面 proxy设置了代理
这将会拉取webRTC源码,且额外加了android相关的依赖,例如Android SDK/ NDK。整个工程大概21G,主要占用的是第三方依赖,在third_party目录下,大概17G+,其中third_party/Android相关依赖有6G+。所以拉取时,请确保空间充裕。
开始正常下载:

下依赖
lsb_release -c
# 阿里源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
内存需求 !!

编译过程
gn gen out/Debug --args='target_os="android" target_cpu="arm"'

autoninja -C out/Debug

真实耗内存

编译aar
./tools_webrtc/android/build_aar.py

参考文章
最新的下载aar地址
Releases · AhmedHumk/Webrtc-AAr-Build-Releases (github.com)
这个应该可以看到最新的变动 ,需求变更等
https://webrtc.googlesource.com/src
这个是说明一
https://it.cha138.com/jingpin/show-125152.html
说明二
https://blog.youkuaiyun.com/solarsaber/article/details/131221815
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
$ export PATH=/path/to/depot_tools:$PATH
设置depot 的环境变量然后走 fetch webrtc_android的脚本 看官方链接https://webrtc.googlesource.com/src/+/main/docs/native-code/android/
尚涛的
https://webrtc.bj2.agoralab.co/webrtc-mirror/depot_tools.git
depot_tools原理和实现
https://blog.youkuaiyun.com/bjrxyz/article/details/125558382
Ubuntu中设置代理的方式
https://blog.youkuaiyun.com/tiansyun/article/details/137260116
Android 音视频开发实践系列-05-从官方下载WebRTC源码编译并发布aar包到GitHubPackages_webrtc github-优快云博客
自己编译Android WebRTC源码后,如何发布aar?_如何引用 libwebrtc.aar-优快云博客
webrtc/samples: WebRTC Web demos and samples (github.com)
进一步了解android studio 里 AGP,gradle等关系_android studio agp-优快云博客
https://blog.youkuaiyun.com/dualvencsdn/article/details/155857912
h264与手机的关系
https://blog.youkuaiyun.com/dualvencsdn/article/details/136555986
保留aar
2894





