无法在 Android Studio 中解析符号 webrtc

Cannot resolve symbol webrtc in Android Studio

我正在尝试在 Android Studio 中使用 webrtc。文件 libjingle_peerconnection_so.so 被放入文件夹 src/main/jniLibs/arneabi-v7a。但是当我输入 Java 文件时:

import org.webrtc.DataChannel;

它告诉我无法解析“无法解析符号 webrtc”。任何帮助表示赞赏。

首先,它是 armeabi-v7a,而不是 arneabi-v7a,但仅此并不能解决您的问题: )

路途艰难,所以这里有一点理论:

文件libjingle_peerconnection_so.so本身不足以在Java程序中使用WebRTC。至少,您需要 WebRTC 核心的 Java JNI 包装器,它为您提供所有必要的 Java 类 以使用本机 WebRTC 代码。默认包装器通常是 libjingle_peerconnection.jar,您应该将其放入 "libs" 文件夹中,与 [=21] 处于同一级别=]"src" 文件夹。所以,你的项目树应该有这些文件:

  • src/main/jniLibs/armeabi-v7a
  • libs/libjingle_peerconnection.jar

您还需要告诉您的构建系统在您的应用中构建 .jar。在 Android Studio 中通常是 Gradle,所以只需将 compile files('libs/libjingle_peerconnection.jar') 添加到您的依赖项中。

不过也有简单的方法!来自 pristine.io 的好人定期为 Android 构建 WebRTC 并将一些预构建版本发布到 Maven 存储库(see here). So, you can just add compile 'io.pristine:libjingle:10839@aar' to your Gradle dependencies, and go. No need to add .so files and all that. Here 是他们关于此的文章(注意过时的 WebRTC 版本,您可以使用 10839,例如)