React Native执行signingReport生成SSH密钥遇两类Gradle错误求助
解决React Native执行
./gradlew signingReport时的两个Gradle错误 第一个错误:compileSdkVersion is not specified. Please add it to build.gradle
你app模块的build.gradle里引用了rootProject.ext.compileSdkVersion这类全局变量,但Gradle找不到这些变量的定义才会报错,按以下步骤修复:
检查根目录的
build.gradle(不是app子目录下的那个),确保buildscript块里定义了全局ext变量:buildscript { ext { compileSdkVersion = 33 // 对应React Native版本选合适值,比如RN 0.70+用33 ndkVersion = "25.1.8937393" minSdkVersion = 21 targetSdkVersion = 33 } repositories { google() mavenCentral() } dependencies { classpath("com.android.tools.build:gradle:7.3.1") // 这个版本要和你的Gradle 7.3.3兼容 // 其他依赖如Kotlin插件等 } }注意:React Native版本和compileSdkVersion有固定对应关系,比如RN 0.68对应31,0.72+对应33,别乱选版本。
确认app模块
build.gradle的语法完整:
你贴的代码里defaultConfig块没写完,要确保整个文件的括号闭合,没有语法错误,否则Gradle也会解析失败。
第二个错误:Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
这个是因为当前配置用了Gradle 8.0不再支持的旧特性,按以下步骤排查修复:
先查看具体是哪些特性被废弃:
执行命令打印详细警告:./gradlew signingReport --warning-mode=all输出里会明确指出废弃的API或配置,比如旧的
compile依赖要换成implementation,或者插件版本太低。升级兼容的插件版本:
比如你的Kotlin版本是1.5.31,和Gradle 7.3.3不匹配,建议升级到1.6.21+,在根build.gradle里修改:dependencies { classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21" // 其他插件也确保和Gradle 7.3.3兼容 }调整gradle.properties配置:
在项目根目录的gradle.properties里添加这些配置,提前适配并明确警告模式:org.gradle.warning.mode=all android.useAndroidX=true android.enableJetifier=true
验证修复
修改完所有配置后,先清理缓存:
./gradlew clean
再重新执行./gradlew signingReport,应该能正常生成签名报告了。
内容的提问来源于stack exchange,提问作者charlie2
相关产品推荐
相关产品推荐

