返回

Android Compose 测试遭遇“libRoverCore.so”缺失?详解修复步骤和优化策略

Android

Android Compose 测试故障:修复“libRoverCore.so”缺失错误

简介

在 Android Compose 测试中,经常会遇到“libRoverCore.so”缺失错误。本文将深入探究导致此错误的原因,并提供分步解决方案,帮助解决此问题。

“libRoverCore.so”库是什么?

“libRoverCore.so”是一个本机库,在使用“reactivecircus”模拟器进行 Android Compose 测试时必需。此库由 Robolectric 提供,用于模拟 Android API,使其在 Java 测试中可用。

为什么在 GitHub Action 中会缺失“libRoverCore.so”?

在本地环境中,Android Studio 可以自动包含“libRoverCore.so”。然而,在 CI(持续集成)环境中,例如 GitHub Action,这种自动包含可能会失效,导致测试失败。

解决步骤

步骤 1:添加 RoverCore 依赖项

在 app 模块的 build.gradle 文件中,添加 RoverCore 依赖项:

testImplementation "org.robolectric:robolectric:4.8.1"

步骤 2:同步 Gradle

同步 Gradle 项目以下载并安装 RoverCore 库。

优化提示

对于 Android API 级别低于 26 的项目

在 build.gradle 文件中将 minSdkVersion 设置为 26 或更高版本:

android {
    compileSdkVersion 33
    buildToolsVersion "33.0.1"

    defaultConfig {
        minSdkVersion 26
        targetSdkVersion 33
        versionCode 1
        versionName "1.0"
    }
}

验证步骤

重新运行测试。现在它应该可以在 GitHub Action 中通过,而不会出现“libRoverCore.so”缺失错误。

结论

通过添加 RoverCore 依赖项并优化 minSdkVersion,可以解决 Android Compose 测试中的“libRoverCore.so”缺失错误。遵循这些步骤,可以确保测试在 CI 环境中成功运行。

常见问题解答

问:为什么在本地运行时没有出现此错误?

答:Android Studio 在本地环境中自动包含了“libRoverCore.so”,而在 CI 环境中则可能需要手动添加。

问:可以使用其他模拟器吗?

答:可以,但其他模拟器可能需要不同的依赖项或配置。

问:如何更新 Robolectric 版本?

答:在 build.gradle 文件中更新 Robolectric 依赖项的版本号。

问:为什么需要优化 minSdkVersion?

答:较低版本的 Android API 可能不包含“libRoverCore.so”库。

问:修复此错误后还有什么其他好处?

答:它可以提高测试的可靠性并防止未来的错误。