Jitsi-meet-sdk android编译总结

编译SDK从下载源代码到编译成功,经过一周时间,每天都是在下载依赖过程中。
今天是4月4日,突然想使用移动手机流量进行下载试试(有外网),居然今天下载的依赖成功了,依赖全了,编译环境符合就可以编译成功了。
环境:

node -v && npm -v && gradle -v
v14.18.0
6.14.15

------------------------------------------------------------
Gradle 7.0
------------------------------------------------------------

Build time:   2021-04-09 22:27:31 UTC
Revision:     d5661e3f0e07a8caff705f1badf79fb5df8022c4

Kotlin:       1.4.31
Groovy:       3.0.7
Ant:          Apache Ant(TM) version 1.10.9 compiled on September 27 2020
JVM:          11.0.14 (Oracle Corporation 11.0.14+8-LTS-263)
OS:           Mac OS X 10.15.7 x86_64
java -version

java version "11.0.14" 2022-01-18 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.14+8-LTS-263)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.14+8-LTS-263, mixed mode)

React Native 0.66.4

参考虑的资料:

https://jitsi.github.io/handbook/docs/dev-guide/dev-guide-android-sdk

构建您自己的,或使用预构建的 SDK 工件
首先确保您的开发环境设置正确。

关于依赖项的说明:除了 SDK 之外,Jitsi 还向 Jitsi Maven 存储库发布了一些 SDK 依赖项(否则不公开)的二进制 Maven 工件。当您计划使用从源代码构建的 SDK 时,您可能会使用比用于创建二进制 SDK 工件的源代码版本更新(或至少不同)的源代码版本. 因此,您的项目需要的依赖项也可能与 Jitsi Maven 存储库中发布的依赖项不同。这可能会导致构建问题,由不可用的依赖项引起。

如果您想使用从源代码构建的 SDK,您可能会从编写包含这些依赖项的本地 Maven 存储库中受益。下面的文本描述了如何创建一个包含 SDK 以及这些依赖项的存储库。出于说明目的,我们将这个本地 Maven 存储库的位置定义为/tmp/repo

在源代码形式中,Android SDK 依赖项由 Jitsi Meet 项目的 package.json 和 package-lock.json 锁定/固定。获取数据,在jitsi-meet项目目录下执行npm:

npm install

这将以二进制格式或源代码格式在 /node_modules/ 下的某个位置引入依赖项

Jitsi Meet SDK for Android 所依赖的第三方 React Native模块由 NPM 以源代码或二进制形式下载。这些需要组装成 Maven 工件,然后发布到本地 Maven 存储库。提供了一个脚本来促进这一点。从 jitsi-meet 项目存储库的根目录运行:

./android/scripts/release-sdk.sh /tmp/repo

出现问题解决地址:

yarn run v1.22.10
$ react-native run-android
info Running jetifier to migrate libraries to AndroidX. You can disable it using "--no-jetifier" flag.
Jetifier found 892 file(s) to forward-jetify. Using 8 workers...
info JS server already running.
info Installing the app...

Configure project :app
WARNING:: The option setting 'android.enableDexingArtifactTransform.desugaring=false' is experimental.
The current default is 'true'.

Task :react-native-webrtc:compileDebugJavaWithJavac FAILED

Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.

You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.

See https://docs.gradle.org/7.2/userguide/command_line_interface.html#sec:command_line_warnings
27 actionable tasks: 2 executed, 25 up-to-date
/Users/mac/demo/RTC-demo/RTC_RNdemo/node_modules/react-native-webrtc/android/src/main/java/com/oney/WebRTCModule/VideoTrackAdapter.java:5: 错误: 程序包org.webrtc不存在
import org.webrtc.VideoFrame;
^
/Users/mac/demo/RTC-demo/RTC_RNdemo/node_modules/react-native-webrtc/android/src/main/java/com/oney/WebRTCModule/VideoTrackAdapter.java:6: 错误: 程序包org.webrtc不存在
import org.webrtc.VideoSink;
^
/Users/mac/demo/RTC-demo/RTC_RNdemo/node_modules/react-native-webrtc/android/src/main/java/com/oney/WebRTCModule/VideoTrackAdapter.java:7: 错误: 程序包org.webrtc不存在
import org.webrtc.VideoTrack;
^
/Users/mac/demo/RTC-demo/RTC_RNdemo/node_modules/react-native-webrtc/android/src/main/java/com/oney/WebRTCModule/VideoTrackAdapter.java:69: 错误: 找不到符号
private class TrackMuteUnmuteImpl implements VideoSink {
^
符号:VideoSink
位置:com.oney.WebRTCModule.VideoTrackAdapter
/Users/mac/demo/RTC-demo/RTC_RNdemo/node_modules/react-native-webrtc/android/src/main/java/com/oney/WebRTCModule/WebRTCModule.java:31: 错误: 程序包org.webrtc不存在
import org.webrtc.;
^
/Users/mac/demo/RTC-demo/RTC_RNdemo/node_modules/react-native-webrtc/android/src/main/java/com/oney/WebRTCModule/WebRTCModule.java:32: 错误: 程序包org.webrtc.audio不存在
import org.webrtc.audio.AudioDeviceModule;
^
/Users/mac/demo/RTC-demo/RTC_RNdemo/node_modules/react-native-webrtc/android/src/main/java/com/oney/WebRTCModule/WebRTCModule.java:33: 错误: 程序包org.webrtc.audio不存在
import org.webrtc.audio.JavaAudioDeviceModule;
^
/Users/mac/demo/RTC-demo/RTC_RNdemo/node_modules/react-native-webrtc/android/src/main/java/com/oney/WebRTCModule/VideoTrackAdapter.java:38: 错误: 找不到符号
public void addAdapter(String streamReactTag, VideoTrack videoTrack) {
^
符号:VideoTrack
位置:com.oney.WebRTCModule.VideoTrackAdapter
/Users/mac/demo/RTC-demo/RTC_RNdemo/node_modules/react-native-webrtc/android/src/main/java/com/oney/WebRTCModule/VideoTrackAdapter.java:53: 错误: 找不到符号
public void removeAdapter(VideoTrack videoTrack) {
^

详细解决资料

https://github.com/react-native-webrtc/react-native-webrtc/issues/1130

可以观察下载的进度,查看这个目录下的文件是否存在,并增加文件长度

最新的SDK源码地址:

https://github.com/jitsi/jitsi-meet/releases/tag/android-sdk-5.0.2

编译成功:

BUILD SUCCESSFUL in 5m 22s
798 actionable tasks: 689 executed, 109 up-to-date

> Configure project :app
WARNING:: The option setting 'android.enableDexingArtifactTransform.desugaring=false' is experimental.
The current default is 'true'.

> Configure project :react-native-reanimated
Warning: Mapping new ns http://schemas.android.com/repository/android/common/02 to old ns http://schemas.android.com/repository/android/common/01
Warning: Mapping new ns http://schemas.android.com/repository/android/generic/02 to old ns http://schemas.android.com/repository/android/generic/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/addon2/02 to old ns http://schemas.android.com/sdk/android/repo/addon2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/repository2/02 to old ns http://schemas.android.com/sdk/android/repo/repository2/01
Warning: Mapping new ns http://schemas.android.com/sdk/android/repo/sys-img2/02 to old ns http://schemas.android.com/sdk/android/repo/sys-img2/01

Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.9/userguide/command_line_interface.html#sec:command_line_warnings

BUILD SUCCESSFUL in 5s
83 actionable tasks: 83 executed

编译步骤:
1、下载源码
2、配置环境
3、编译
4、解决编译中出现的问题
根据不同的问题,查找解决方案

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Jitsi-meet是一款开放源代码的视频会议软件,它以WebRTC技术为基础,提供了实时和高清的音视频通信功能。作为一款开源软件,Jitsi-meet可以进行二次开发,以满足不同用户的需求。 Jitsi-meet的二次开发可以包括对其现有功能的定制化,以及添加新的功能和扩展。定制化可以通过修改源代码来实现,例如调整界面的主题和布局、更改会议室的命名规则、增加特定于企业的功能等。这样可以根据用户的需求进行有针对性的调整,提供更好的用户体验。 另外,Jitsi-meet的二次开发还可以通过集成其他服务和工具来扩展其功能。例如,可以集成身份验证系统,以确保只有授权用户才能进入会议室。还可以集成桌面共享功能,使与会者可以分享自己的屏幕。此外,还可以通过添加插件或自定义脚本来添加其他功能,例如录制会议、发送文件、多语言支持等。 此外,Jitsi-meet还支持部署私有服务器,通过二次开发可以对服务器端进行定制化。这样,用户可以根据自己的需求进行服务器架设和管理,满足更高的安全性和可控性要求。 总的来说,Jitsi-meet的二次开发可以根据实际需求进行定制化和扩展,以满足个人、企业、组织等不同用户的需求。无论是修改现有功能还是添加新功能,都可以通过二次开发来实现,提供更好的视频会议体验和更强大的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值