react-native-braintree-dropin-ui编译报错:lambda表达式不支持-source 7
解决react-native-braintree-dropin-ui升级后Lambda表达式编译错误
方案1:全局配置Java编译版本(推荐)
在项目根目录的build.gradle文件中,找到allprojects块,加入subprojects配置,强制所有模块(包括第三方依赖)用Java 11编译:
allprojects { repositories { // 保留原有仓库配置 } subprojects { afterEvaluate { project -> if (project.hasProperty('android')) { android { compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } } } } } }
改完后执行./gradlew clean,再重新跑npm run android。
方案2:直接修改第三方库配置并持久化
如果全局配置没效果,直接修改依赖库的编译配置:
- 打开
node_modules/react-native-braintree-dropin-ui/android/build.gradle,在android块里加编译选项:
android { // 原有配置不动 compileOptions { sourceCompatibility JavaVersion.VERSION_11 targetCompatibility JavaVersion.VERSION_11 } }
- 为了防止后续
npm install覆盖修改,用patch-package做持久化:- 安装工具:
npm install patch-package --save-dev - 生成补丁:
npx patch-package react-native-braintree-dropin-ui - 之后每次安装依赖都会自动应用这个补丁。
- 安装工具:
方案3:检查Gradle版本是否兼容Java 11
Gradle 6.7及以上才支持Java 11,确认项目Gradle版本:
- 打开
gradle/wrapper/gradle-wrapper.properties,看distributionUrl,比如改成distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip - 同步项目后再重新编译。
内容的提问来源于stack exchange,提问作者Haritha Senevirathne
相关产品推荐
相关产品推荐

