Failed resolution of: Landroid/support/v4/content/ContextCompat; 崩溃 RTC SDK 对 support/v4 有依赖,是较早的版本,早于 Android X。如果你的工程通过 android.useAndroidX=true 配置,标记 APP 强制使用 AndroidX,那么,可能会导致编译不通过,并有以上报错。
解决方案:在项目根目录的 gradle.properties 文件中添加 android.enableJetifier=true。
自较早的版本开始,RTC SDK 中都在根目录下,包含名为 proguard-rules.pro 的混淆配置文件。你的 App 集成 RTC SDK 打包时,会自动将此混淆配置加入 App 的混淆配置中。你无需为 RTC SDK 的混淆配置专门添加规则。
对于更早的版本(3.30 及以前),RTC 强烈建议你升级到最新版本。如果您需要混淆配置方面的详细信息,请咨询技术支持。
targetSDKVersion >= 31 时如何配置蓝牙权限? 在 AndroidManifest.xml 文件中配置应用所需的权限。
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT" />
xml在 Activity 中动态申请 BLUETOOTH_CONNECT 权限。参考以下代码进行申请:
private static final int PERMISSION_REQ_ID_RECORD_AUDIO = 22;// 可以任意值
private static final int PERMISSION_REQ_ID_CAMERA = PERMISSION_REQ_ID_RECORD_AUDIO + 1;
private static final int PERMISSION_REQ_ID_BLUETOOTH_CONNECT = PERMISSION_REQ_ID_CAMERA + 1;
// Check necessary permissions granted and
// if the permissions are not granted, use the built-in Android feature to request them.
private boolean checkSelfPermissions() {
return checkSelfPermission(Manifest.permission.RECORD_AUDIO, PERMISSION_REQ_ID_RECORD_AUDIO) &&
checkSelfPermission(Manifest.permission.CAMERA, PERMISSION_REQ_ID_CAMERA) &&
// If targetSDKVersion >= 31 and want to use bluetooth headset, need request permission.
checkSelfPermission(Manifest.permission.BLUETOOTH_CONNECT, PERMISSION_REQ_ID_BLUETOOTH_CONNECT);
}
public boolean checkSelfPermission(String permission, int requestCode) {
if (PermissionChecker.checkSelfPermission(this, permission) != PackageManager.PERMISSION_GRANTED) {
ActivityCompat.requestPermissions(this, new String[]{permission}, requestCode);
return false;
}
return true;
}
java说明
在项目根目录的 settings.gradle 文件配置 Maven 仓库地址。
dependencyResolutionManagement {
repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
repositories {
...
maven { url "https://developer.huawei.com/repo/" }
}
}
groovy说明
如果你的 Android Gradle Plugin 版本低于 v7.1.0,则应在项目根目录的 build.gradle 文件配置 Maven 仓库地址。
allprojects {
repositories {
...
maven { url "https://developer.huawei.com/repo/"}
...
}
}
groovy在 App 的 build.gradle 文件中添加 audiokit 和 gson 依赖。
dependencies {
...
implementation "com.huawei.multimedia:audiokit:1.0.3"
...
}
groovy推荐使用真机调试,模拟器出现花屏可能是摄像头设置有误或未开放当前设备的摄像头权限。
安卓平台上,RTC 视频超分、视频降噪、暗光增强等视频处理特性在 GPU 上的正常运行依赖厂商提供的 OpenCL 库。根据 Android 开发者指南对 Android 12 的行为变更说明,当应用升级目标平台为 Android 12(targetSdkVersion>=31) 及以上版本后,app 访问设备厂商提供的本地库时,必须使用应用清单 (AndroidManifest.xml) 中的 <uses-native-library> 标记指明其依赖,以免出现帧率下降、视频暗光增强功能无法开启等异常。你可以参考此文档进行适配操作。
升级 Android app 的Android Gradle Plugin 版本到 4.2.0+,确保构建工具链支持 <uses-native-library> 标记。
在应用 AndroidManifest.xml 文件的 <application> 标签下加入 <uses-native-library> 标记,声明以下 OpenCL 相关本地库的白名单(详情参考 Android 开发者指南):
<application>
<uses-native-library
android:name="libOpenCL.so"
android:required="false"/>
<uses-native-library
android:name="libGLES_mali.so"
android:required="false"/>
<uses-native-library
android:name="libmali.so"
android:required="false"/>
<uses-native-library
android:name="libPVROCL.so"
android:required="false"/>
<uses-native-library
android:name="libpocl.so"
android:required="false"/>
</application>
xml