在Expo Native Module接入第三方SDK遇构建报错的解决方法
解决Expo Native Module集成PagSeguro SDK时的Gradle依赖错误
问题场景
开发集成智能信用卡支付终端SDK的Expo Native Module原生库时,按照SDK文档要求在模块的android/build.gradle中添加了以下配置:
仓库配置
repositories { ... maven { url 'https://github.com/pagseguro/PlugPagServiceWrapper/raw/master' } }
依赖配置
implementation 'br.com.uol.pagseguro.plugpagservice.wrapper:wrapper:1.24.0'
执行npx expo run:android构建示例项目时,终端返回错误:
FAILURE: Build completed with 2 failures. 1: Task failed with an exception. ----------- * Where: Build file '/home/bruno/projetos/native-modules/react-native-pagseguro-plugpag/android/build.gradle' line: 38 * What went wrong: A problem occurred evaluating project ':react-native-pagseguro-plugpag'. > Could not find method implementation() for arguments [com.pagseguro:plugpag-servicewrapper:1.24.0] on object of type org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.
错误原因
- 依赖坐标不匹配:错误日志中显示的依赖坐标
com.pagseguro:plugpag-servicewrapper:1.24.0与SDK文档给出的br.com.uol.pagseguro.plugpagservice.wrapper:wrapper:1.24.0不一致,属于手动输入错误。 - 依赖放置位置错误:
implementation是Gradle依赖块中的方法,若将其写在dependencies {}闭包之外,会导致Gradle无法识别该方法。
解决步骤
- 修正依赖坐标:将错误的依赖坐标替换为SDK文档指定的正确版本:
implementation 'br.com.uol.pagseguro.plugpagservice.wrapper:wrapper:1.24.0' - 确保依赖在正确的代码块中:在模块的
android/build.gradle中,找到dependencies闭包,将上述依赖语句放入其中,示例结构如下:dependencies { // 其他已有依赖 implementation 'br.com.uol.pagseguro.plugpagservice.wrapper:wrapper:1.24.0' } - 验证仓库配置位置:确认maven仓库配置位于模块
build.gradle的repositories块内,或项目根目录build.gradle的allprojects/repositories块中(推荐在模块内单独配置)。 - 清理并重新构建:执行以下命令清理缓存后重新构建:
./gradlew clean npx expo run:android
内容的提问来源于stack exchange,提问作者Bruno Azevedo
相关产品推荐
相关产品推荐

