客户端集成
更新时间: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
    }
}

4. 添加 dataBinding支持
在项目主模块的 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>
常见问题
AndroidManifest 文件中 allowBackup 属性冲突问题
如果有类似提示:
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
