步骤二:集成 SDK

最近更新时间:2023-12-28 11:32:51

我的收藏

前提条件

说明:
搭载 minSdkVersion 21 环境。

集成方式

小程序容器集成

1. 配置仓库地址
方式一:Gradle 7.0以前版本。
打开用户项目管理工具,在项目级 build.gradle 中添加如下配置。
buildscript {
dependencies {
classpath 'org.jetbrains.kotlin:kotlin-gradle-plugin:1.4.32'
}
}

allprojects {
repositories {
maven {
url 'https://tcmpp-work-maven.pkg.coding.net/repository/tcmpp/android'
}
}
}
方式二:Gradle 7.1及之后版本。
在项目级 settings.gradle 中添加如下配置。
pluginManagement {
repositories {
maven {
url 'https://tcmpp-work-maven.pkg.coding.net/repository/tcmpp/android'
}
}
}
dependencyResolutionManagement {
repositories {
maven {
url 'https://tcmpp-work-maven.pkg.coding.net/repository/tcmpp/android'
}
}
}
2. 在应用级 build.gradle 中配置插件
方式一:Gradle 7.0以前版本:
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-kapt'
方式二:Gradle 7.1及之后版本:
plugins {
id "org.jetbrains.kotlin.android"
id "org.jetbrains.kotlin.kapt"
}
3. 在应用级 build.gradle 中配置 packagingOptions
android {
defaultConfig {
packagingOptions {
pickFirst 'lib/arm64-v8a/libc++_shared.so'
pickFirst 'lib/armeabi/libc++_shared.so'
pickFirst 'lib/armeabi-v7a/libc++_shared.so'
pickFirst 'lib/arm64-v8a/libmarsxlog.so'
pickFirst 'lib/armeabi/libmarsxlog.so'
pickFirst 'lib/armeabi-v7a/libmarsxlog.so'
pickFirst 'lib/arm64-v8a/libv8jni.so'
}
}
}
4. 在应用级 build.gradle 中配置依赖项
dependencies {
implementation 'com.google.android.material:material:1.3.0-alpha03'
implementation 'androidx.core:core-ktx:1.6.0'
//gosn
implementation 'com.google.code.gson:gson:2.8.6'
// ok-http
implementation 'com.squareup.okhttp3:okhttp:3.12.13'
// mini app start
kapt 'com.tencent.tcmpp.android:mini_annotation_processor:${version}'//版本信息请参考SDK 更新动态
implementation 'com.tencent.tcmpp.android:mini_core:${version}'//版本信息请参考SDK 更新动态
// mini app end
}
请将 ${version} 替换为 SDK 最新版本,版本信息请参考 SDK 更新动态
如果开发者原来的工程中使用了 annotationProcessor 注解处理器,需要将所有 annotationProcessor 改为 kapt。
如需使用x5内核,可参考 扩展 SDK > X5内核

5. 集成过程可能会遇到的问题
集成过程可能会遇到如下问题:
AAPT: error: attribute android:requestLegacyExternalStorage not found.
在 application 标签下添加如下代码:
<application
android:theme="@style/AppTheme"
tools:replace="android:icon"
tools:remove="android:requestLegacyExternalStorage">
/application>
集成过程中可能会出现如下错误:
Duplicate class android.support.v4.app.INotificationSideChannel found in modules core-1.3.1-runtime (androidx.core:core:1.3.1) and support-v4-21.0.3-runtime (com.android.support:support-v4:21.0.3)

gradle.properties中添加如下代码:
android.useAndroidX=true
android.enableJetifier=true
6. 小程序 taro 框架支持
Uncaught DOMException: Failed to read the 'sessionStorage' property from 'Window': Access is denied for this document.
at <anonymous>:1207:96250
at Array.forEach (<anonymous>)
at Module.<anonymous> (<anonymous>:1207:96164)
at Module.9 (<anonymous>:1207:113782)
at l (<anonymous>:1203:566)
at Module.204 (<anonymous>:1215:87806)
at l (<anonymous>:1203:566)
at t (<anonymous>:1203:435)
at Array.r [as push] (<anonymous>:1203:298)
at <anonymous>:1215:125
如果小程序基于 Taro 框架开发可能出现上面的错误,请添加如下依赖(未使用 taro 框架则无需添加)。
implementation 'com.tencent.tcmpp.android:mini_extra_v8:${version}'