React Native集成Zebra EMDK报错:找不到com.symbol:emdk:9.1.1
Zebra设备RFID扫描应用依赖解析错误问题
我正在为Zebra设备开发一款基础RFID扫描应用,但遇到了依赖解析错误,试过多种方法都无法解决。
错误信息
* 问题原因: 无法确定任务 ':app:compileDebugJavaWithJavac' 的依赖项。 > 无法解析配置 ':app:debugCompileClasspath' 的所有任务依赖项。 > 找不到 com.symbol:emdk:9.1.1。 已在以下位置搜索: - https://oss.sonatype.org/content/repositories/snapshots/com/symbol/emdk/9.1.1/emdk-9.1.1.pom - https://repo.maven.apache.org/maven2/com/symbol/emdk/9.1.1/emdk-9.1.1.pom - https://dl.google.com/dl/android/maven2/com/symbol/emdk/9.1.1/emdk-9.1.1.pom - https://www.jitpack.io/com/symbol/emdk/9.1.1/emdk-9.1.1.pom 被以下项目依赖: project :app
当前配置文件
Android/build.gradle
buildscript { ext { buildToolsVersion = "34.0.0" minSdkVersion = 21 compileSdkVersion = 34 targetSdkVersion = 34 ndkVersion = "25.1.8937393" kotlinVersion = "1.8.0" } repositories { google() mavenCentral() jcenter() maven { url = "https://zebratech.jfrog.io/artifactory/EMDK-Android/" } } dependencies { classpath("com.android.tools.build:gradle") classpath("com.facebook.react:react-native-gradle-plugin") classpath("org.jetbrains.kotlin:kotlin-gradle-plugin") classpath 'com.google.gms:google-services:4.3.15' } } apply plugin: "com.facebook.react.rootproject"
App/build.gradle
dependencies { // React Native版本由React Native Gradle插件设置 implementation("com.facebook.react:react-android") implementation("com.facebook.react:flipper-integration") implementation("com.android.support:appcompat-v7:25.3.1") implementation("com.android.support.constraint:constraint-layout:1.0.2") compileOnly 'com.symbol:emdk:9.1.1' //implementation("com.symbol:emdk:9.1.1") if (hermesEnabled.toBoolean()) { implementation("com.facebook.react:hermes-android") } else { implementation jscFlavor } }
解决方法
调整仓库配置位置
Gradle构建应用依赖时,会读取项目根级的repositories配置,而非仅buildscript内的配置。需要在Android/build.gradle中添加根级仓库声明:buildscript { // 保留原有buildscript内容不变 } // 新增根级仓库配置 allprojects { repositories { google() mavenCentral() jcenter() maven { url = "https://zebratech.jfrog.io/artifactory/EMDK-Android/" } } } apply plugin: "com.facebook.react.rootproject"修正依赖声明类型
如果应用运行时需要调用EMDK的API,compileOnly仅在编译时生效,无法满足运行需求,需改为implementation:// 移除这行 // compileOnly 'com.symbol:emdk:9.1.1' // 使用implementation声明依赖 implementation("com.symbol:emdk:9.1.1")清理缓存并重新构建
- 在Android Studio中点击「Sync Project with Gradle Files」同步配置
- 执行命令
./gradlew clean清理构建缓存,之后重新编译项目
内容的提问来源于stack exchange,提问作者ijaz bacha
相关产品推荐
相关产品推荐

