RN 0.75.3集成@react-native/popup-menu-android报Unresolved reference: libs
问题根源
构建报错Unresolved reference: libs,是因为该库的build.gradle.kts依赖Gradle Version Catalog(即libs.versions.toml文件)管理插件和版本,但你的项目要么缺失这个文件,要么文件中没有对应的配置项。
解决方案
方案1:修改库的gradle配置(临时快速修复)
直接修改node_modules/@react-native/popup-menu-android/android/build.gradle.kts,把所有libs相关引用替换为硬编码值(版本号需和你项目中使用的保持一致):
plugins { id("com.facebook.react") id("com.android.library") version "7.4.2" id("org.jetbrains.kotlin.android") version "1.9.0" } android { compileSdk = 34 buildToolsVersion = "34.0.0" namespace = "com.facebook.react.popupmenu" defaultConfig { minSdk = 21 } compileOptions { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } } kotlin { jvmToolchain(17) explicitApi() } dependencies { implementation(project(":packages:react-native:ReactAndroid")) }
修改后可使用patch-package保存修改,避免重新安装依赖后配置丢失:
npx patch-package @react-native/popup-menu-android
方案2:完善项目的Version Catalog配置
如果项目根目录没有gradle/libs.versions.toml文件,创建该文件并添加以下内容:
[versions] compileSdk = "34" buildTools = "34.0.0" minSdk = "21" kotlin = "1.9.0" androidGradlePlugin = "7.4.2" [plugins] android-library = { id = "com.android.library", version.ref = "androidGradlePlugin" } kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
同时确保项目根目录的settings.gradle.kts中引用了这个文件:
dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { google() mavenCentral() } versionCatalogs { create("libs") { from(files("gradle/libs.versions.toml")) } } }
方案3:核对库版本兼容性
确认安装的@react-native/popup-menu-android版本适配React Native 0.75.x,尝试升级或降级库版本:
# 安装最新适配版本 npm install @react-native/popup-menu-android@latest # 或指定具体版本 npm install @react-native/popup-menu-android@x.x.x
内容的提问来源于stack exchange,提问作者vonschweetz
相关产品推荐
相关产品推荐

