常见问题

常见编译问题

allowBackup 冲突

TMF或者三方SDK组件在声明allowBackup属性时出现了不一致的情况,编译阶段会报Manifest merger failded。如下图所示:

allowbackup

解决方法:

在您app的AndroidManifest.xml application标签中设置您自己的allowBackup值,并使用tools:replace覆盖TMF的冲突值。

allowbackup-replace

X5私有化版与Lisence版本冲突

如果您同时引入X5的私有化版和Lisence版本,编译阶段会出现重复类冲突,请只保留其中一个即可。

错误示例:

allowbackup-replace

解决方法:

在您的依赖配置中只保留私有化版、Lisence版其中之一

  • 私有化版本依赖项

    implementation 'com.tencent.tmf.android:tbscore:xxx'
    implementation 'com.tencent.tmf.android:x5docpreview:xxx'
    
  • Lisence版本依赖项

    implementation 'com.tencent.tmf.androidlic:tbscore:xxx'
    implementation 'com.tencent.tmf.androidlic:x5docpreview:xxx'
    

libc++_shared.so冲突问题

TMF内部组件使用了libc++_shared.so,可能会与其他三方库造成冲突。

错误示例:

allowbackup-replace

解决方法:

在app/build.gradle中增加如下配置:

   android{
      ...
      packagingOptions {
          pickFirst 'lib/arm64-v8a/libc++_shared.so'
          pickFirst 'lib/armeabi/libc++_shared.so'
          pickFirst 'lib/armeabi-v7a/libc++_shared.so'
      }
      ...
   }

Java版本兼容问题

TMF组件使用到了部分Java8的语言特性和API,因此需要在您模块的 build.gradle设置compileOptions,否则可能会遇到编译与运行时问题。

android {
    ...
    // Configure only for each module that uses Java 8
    // language features (either in its source code or
    // through dependencies).
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    // For Kotlin projects
    kotlinOptions {
        jvmTarget = "1.8"
    }
}

此外,如果您的compileSdkVersion在30以上时,需要将Android Studio的Gradle Jdk配置设置为 Java 11。

allowbackup-replace

Copyright © 2013-2023 Tencent Cloud. all right reserved,powered by GitbookUpdate Time 2023-08-31 14:46:07

results matching ""

    No results matching ""