客户端集成
更新时间:2020-08-27
LinkV秀场直播
SDK 为您提供搭建直播场景的全套功能,帮助您快速实现直播功能。
客户端目前支持 Maven
方式集成,SDK 支持 Android 5.0
或以上版本系统,Android Studio 建议使用 Android Studio 3.6
或以上版本,目前暂不支持模拟器运行。
环境准备
请确保满足以下开发环境:
- Android Studio 3.6 或以上版本。
- Android 版本不低于 5.0 且支持音视频的 Android 真机。
- Android 设备已经连接到 Internet。
导入工程
gradle 集成方式
1. 添加 Maven 库
打开项目根目录下的 build.gradle
文件,在 buildscript
与 allprojects
的 repositories
节点中添加如下代码:
maven {
url 'http://maven.linkv.fun/repository/liveme-android/'
credentials {
username = 'linklivePublicUser'
password = 'public'
}
}
2. gradle 引入 linkvui 依赖
在项目主模块的 build.gradle
文件中,dependencies
节点下添加如下库依赖:
dependencies {
...
// 建议使用最新版本,x.x.x 为版本号.
implementation 'com.app.live:linkvui:x.x.x'
}
3. 添加 Java8 语言支持
在项目主模块的 build.gradle
文件中,android
节点下添加如下 Java8 语言的依赖:
android {
...
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dataBinding
支持
4. 添加 在项目主模块的 build.gradle
文件中,android
节点下添加如下dataBinding
的依赖:
android {
...
dataBinding {
enabled = true
}
}
添加权限
打开项目中的 app/src/main/AndroidManifest.xml
文件,添加如下代码。
<!--访问网络连接,可能产生GPRS流量-->
<uses-permission android:name="android.permission.INTERNET" />
<!--改变WiFi状态-->
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<!--访问电话状态-->
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
允许使用http协议
在项目路径android/app/src/main/res/xml文件夹中创建文件network_security_config.xml
,并添加如下代码:
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true" />
</network-security-config>
打开项目中的android/app/src/main/AndroidManifest.xml文件,在application
标签中添加如下属性:
android:networkSecurityConfig="@xml/network_security_config"
FileProvider 冲突
FileProvider
的 authorities
冲突
当项目中使用了 FileProvider
需要注意此问题,如果没有使用 FileProvider
则忽略。
如果有类似提示:
java.lang.IllegalArgumentException: Couldn't find meta-data for provider with authority xxx.xxx.provider
则说明项目中使用的 FileProvider
与 sdk
中使用的 FileProvider
的 authorities
冲突了,需要如下处理:
打开主应用中的 AndroidManifest.xml
文件,在 application
节点下添加代码:
<provider
android:name="androidx.core.content.FileProvider"
tools:replace="android:authorities"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/paths" />
</provider>
FileProvider
的 resource
路径冲突
自定义 当项目中使用了自定义 FileProvider
需要注意此问题,如果没有使用自定义 FileProvider
则忽略。
如果有类似提示:
Attribute meta-data#android. support. FILE* PROVIDER* PATHS@resource value=(@xml/file\_ paths)from AndroidManifest.xml:101:17-51
is also present at [com. app. live: linkvui:0.0. 60.57] AndroidManifest.xml:95:17-46 value=(@xml/paths) ,
Suggestion: add ' tools: replace="android: resourcel"' to <meta-data> element at AndroidManifest . xml:99:13-101:54 to override.
说明 FileProvider
的 resource
路径有冲突,SDK
中的 FileProvider
的 resource
路径为:paths
,请修改主应用中的自定义 FileProvider
的 resource
路径。
例如: resource
路径修改为:file_paths
。
示例代码如下:
<provider
android:name=".XXXProvider"
tools:replace="android:authorities"
android:authorities="${applicationId}.provider"
android:exported="false"
android:grantUriPermissions="true">
<meta-data
android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"
tools:replace="android:resource"/>
</provider>
常见问题
allowBackup
属性冲突问题
AndroidManifest 文件中 如果有类似提示:
Manifest merger failed : Attribute application@allowBackup value=(true) from AndroidManifest.xml:7:9-35
is also present at [com.app.live:livemesdk:0.0.24-outerLenovoRelease] AndroidManifest.xml:34:9-36 value=(false).
Suggestion: add 'tools:replace="android:allowBackup"' to <application> element at AndroidManifest.xml:6:5-21:19 to override.
则说明 AndroidManifest
文件中的 allowBackup
属性有冲突,需要如下处理:
- 打开主应用中的
AndroidManifest.xml
文件,在manifest
节点下添加属性:
xmlns:tools="http://schemas.android.com/tools"
- 打开主应用中的
AndroidManifest.xml
文件,在application
节点下添加属性:
tools:replace="android:allowBackup"
apk 方法数量大于 65536
如果有类似提示:
则说明 apk
中的方法数量超出 65536
的限制了,需要进行如下配置:
- 打开主项目中的
app/build.gradle
文件,在dependencies
节点下添加如下代码:
dependencies {
...
implementation 'com.android.support:multidex:1.0.3'
}
- 打开主项目中的
app/build.gradle
文件,在defaultConfig
节点下添加如下代码:
multiDexEnabled true
- 打开主项目中的自定义
Application
子类,在onCreate
方法中添加如下代码:
MultiDex.install(this);
使用AndroidX的依赖报错
如果有类似提示:
则说明使用了AndroidX的依赖,但是并没有在gradle.properties文件中进行配置true,需要在gradle.properties
文件中进行如下配置
android.useAndroidX=true
android.enableJetifier=true