依赖 org.json:json:20090211 被忽略以进行调试,因为它可能与 Android 提供的内部版本冲突

Posted

技术标签:

【中文标题】依赖 org.json:json:20090211 被忽略以进行调试,因为它可能与 Android 提供的内部版本冲突【英文标题】:Dependency org.json:json:20090211 is ignored for debug as it may be conflicting with the internal version provided by Android 【发布时间】:2015-12-31 11:59:41 【问题描述】:

当我运行 android studio 时,出现以下警告:

。 如有问题,请用jarjar重新打包更改类包

我该如何解决这个错误?

谢谢。

【问题讨论】:

【参考方案1】:

CommonsWare 的答案是正确的。依赖 org.json:json:20090211 被忽略进行调试,因为它可能与 Android 提供的内部版本冲突。

如果您使用的是 gradle 依赖项,请尝试从包中排除 org.json。

compile ('com.your.dependency.name:0.0.0')
  exclude group: 'org.json', module: 'json'

这个对我有用。

【讨论】:

要了解哪个有org.json依赖,你可以在android studio的终端上使用gradlew app:dependencies搜索应用depoendencies。【参考方案2】:

您似乎正在尝试使用一些未针对 Android 设置的 Java 依赖项。最有可能的是,它是您刚刚添加的任何依赖项。这可能适用于org.json:json,也可能适用于对org.json:json 具有传递依赖的其他东西。

如果您自己添加了对 org.json:json 的依赖项,只需使用 Android SDK 中那些类的副本即可。

如果您添加了对其他东西的依赖,而这正是 org.json:json 所需要的,请与您尝试使用的库的开发人员交谈,并与他们讨论如何在 Android 上最好地使用该库。

【讨论】:

感谢您的回复,我正在使用依赖项 compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:23.0 .0' 编译'org.java-websocket:Java-WebSocket:1.3.0' 编译'com.github.nkzawa:engine.io-client:0.6.0' 编译'com.github.nkzawa:socket.io-client :0.6.0' 编译 'com.github.rey5137:material:1.2.1' @sky:嗯,它不是来自appcompat-v7 或裸JAR,所以org.json:json 依赖来自其他三个库之一。请注意,有 Android 就绪的 WebSocket 和 socket.io 库,like AndroidAsync。

以上是关于依赖 org.json:json:20090211 被忽略以进行调试,因为它可能与 Android 提供的内部版本冲突的主要内容,如果未能解决你的问题,请参考以下文章

Android Gradle 插件Android 依赖管理 ⑤ ( Gradle 依赖优化 | 命令行查看依赖模块 | 依赖冲突问题 | 依赖传递冲突 | 分库冲突 | 依赖分组不同导致冲突 )

Android Gradle 插件Gradle 依赖管理 ⑤ ( dependencies 依赖项拆分 | 依赖组 | 依赖名称 | 依赖版本号 | 动态指定依赖版本号 | 使用命令行查看模块 )

Android Gradle 插件Android 依赖管理 ④ ( 常用依赖配置分析 | implementation 依赖作用 | api 依赖作用 | compileOnly 依赖作用 )

Maven 依赖管理 -- 依赖配置 & 依赖传递 (概念 & 依赖传递冲突问题 & 可选依赖(不透明) & 排除依赖(不需要))

TestNg依赖高级用法之强制依赖与顺序依赖------TestNg依赖详解

Android Gradle 插件Android 依赖管理 ⑥ ( 依赖冲突处理 | transitive 依赖传递设置 | exclude 依赖排除设置 | force 强制指定依赖库 )