首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android:由于程序类型的存在,构建失败

Android:由于程序类型的存在,构建失败
EN

Stack Overflow用户
提问于 2019-02-12 08:40:00
回答 1查看 228关注 0票数 0

我正在尝试将乐山服务器演示编译为Java到Android中,因为我想将它用于应用程序中。

当我编译它时,我有一个库,它包含了一个库来定义一个特定的类,这个库也是由另一个类定义的,它也包含在项目中。这两个库都是必要的。

这是我的分级文件

代码语言:javascript
复制
apply plugin: 'java-library'
    
sourceCompatibility = "8"
targetCompatibility = "8"
    
dependencies {
    implementation fileTree(include: ['*.jar'], dir: 'libs')
    implementation 'org.slf4j:slf4j-android:1.7.25'
    implementation 'com.fasterxml.jackson.core:jackson-databind:2.9.8'
    implementation 'org.jmdns:jmdns:3.5.5'
    implementation 'commons-cli:commons-cli:1.4'
    implementation 'org.eclipse.californium:californium-core:2.0.0-M13'
    implementation 'org.eclipse.jetty:jetty-webapp:9.4.14.v20181114'
    implementation 'org.eclipse.jetty:jetty-continuation:9.4.14.v20181114'
    implementation 'commons-io:commons-io:2.6'
    implementation 'org.apache.commons:commons-lang3:3.8.1'
    implementation 'com.google.code.gson:gson:2.8.5'
    implementation 'org.eclipse.leshan:leshan-server-cf:1.0.0-M10'
    implementation 'org.eclipse.leshan:leshan-server-cluster:1.0.0-M10'
}

源当前与其github存储库中的文件相同(链接在上面)

如果我试图编译,我有:

任务:app:transformDexArchiveWithExternalLibsDexMergerForDebug失败 AGPBI:{“种类”:“错误”,“文本”:“程序类型已经存在: org.eclipse.leshan.server.cluster.RedisRegistrationStore",”源:{},“工具”:“D8”}

据我所知,这意味着两个库正在定义相同的类: RedisRegistrationStore

我想做的是在某种程度上排除它。

在查看这里找到的不同解决方案(如相似解 )时,我尝试进行了一些排除,并以这样的方式修改了gradle文件:

代码语言:javascript
复制
........
    implementation 'org.eclipse.leshan:leshan-server-cluster:1.0.0-M10'{
    exclude group: 'org.eclipse.leshan', module:'cluster'
}
........

但也许这意味着我不能排除,因为我得到了另一个错误

无法为类型为org.eclipse.leshan:leshan-server-cluster:1.0.0-M10()的对象上的参数build_cbo5jg18zhz8pvdsjliwvve5w$_run_closure1$_closure2@428dc770找到方法org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler.

顺便说一下,我不确定排除组/模块是否是解决问题的正确方法。我只需要删除一个类。

我也在这里看了一下:Android文档如何修复重复的类

但是它不适合我的问题,因为我的类被声明到lib A和lib B中,而不是像在正式文档中那样直接依赖。

你知道如何处理我的问题吗?也许总的来说,解决这个问题的最佳方法是什么?

我做错什么了?

编辑

这是我的依赖树

代码语言:javascript
复制
+--- org.slf4j:slf4j-android:1.7.25
|    \--- org.slf4j:slf4j-api:1.7.25
+--- com.fasterxml.jackson.core:jackson-databind:2.9.8
|    +--- com.fasterxml.jackson.core:jackson-annotations:2.9.0
|    \--- com.fasterxml.jackson.core:jackson-core:2.9.8
+--- org.jmdns:jmdns:3.5.5
|    \--- org.slf4j:slf4j-api:1.7.25
+--- commons-cli:commons-cli:1.4
+--- org.eclipse.californium:californium-core:2.0.0-M13
|    +--- org.eclipse.californium:californium-legal:2.0.0-M13
|    +--- org.eclipse.californium:element-connector:2.0.0-M13
|    |    +--- org.eclipse.californium:californium-legal:2.0.0-M13
|    |    \--- org.slf4j:slf4j-api:1.7.25
|    \--- org.slf4j:slf4j-api:1.7.25
+--- org.eclipse.jetty:jetty-webapp:9.4.14.v20181114
|    +--- org.eclipse.jetty:jetty-xml:9.4.14.v20181114
|    |    \--- org.eclipse.jetty:jetty-util:9.4.14.v20181114
|    \--- org.eclipse.jetty:jetty-servlet:9.4.14.v20181114
|         \--- org.eclipse.jetty:jetty-security:9.4.14.v20181114
|              \--- org.eclipse.jetty:jetty-server:9.4.14.v20181114
|                   +--- javax.servlet:javax.servlet-api:3.1.0
|                   +--- org.eclipse.jetty:jetty-http:9.4.14.v20181114
|                   |    +--- org.eclipse.jetty:jetty-util:9.4.14.v20181114
|                   |    \--- org.eclipse.jetty:jetty-io:9.4.14.v20181114
|                   |         \--- org.eclipse.jetty:jetty-util:9.4.14.v20181114
|                   \--- org.eclipse.jetty:jetty-io:9.4.14.v20181114 (*)
+--- org.eclipse.jetty:jetty-continuation:9.4.14.v20181114
+--- commons-io:commons-io:2.6
+--- org.apache.commons:commons-lang3:3.8.1
+--- com.google.code.gson:gson:2.8.5
+--- org.eclipse.leshan:leshan-server-cf:1.0.0-M10
|    +--- org.eclipse.leshan:leshan-core-cf:1.0.0-M10
|    |    +--- org.eclipse.leshan:leshan-core:1.0.0-M10
|    |    |    +--- org.slf4j:slf4j-api:1.7.25
|    |    |    \--- com.eclipsesource.minimal-json:minimal-json:0.9.5
|    |    +--- org.eclipse.californium:californium-core:2.0.0-M12 -> 2.0.0-M13 (*)
|    |    \--- org.eclipse.californium:scandium:2.0.0-M12
|    |         +--- org.eclipse.californium:element-connector:2.0.0-M12 -> 2.0.0-M13 (*)
|    |         \--- org.slf4j:slf4j-api:1.7.25
|    +--- org.eclipse.leshan:leshan-server-core:1.0.0-M10
|    |    \--- org.eclipse.leshan:leshan-core:1.0.0-M10 (*)
|    +--- org.eclipse.californium:californium-core:2.0.0-M12 -> 2.0.0-M13 (*)
|    \--- org.eclipse.californium:scandium:2.0.0-M12 (*)
\--- org.eclipse.leshan:leshan-server-cluster:1.0.0-M10
     +--- org.eclipse.leshan:leshan-core:1.0.0-M10 (*)
     +--- org.eclipse.leshan:leshan-server-cf:1.0.0-M10 (*)
     +--- redis.clients:jedis:2.8.0
     |    \--- org.apache.commons:commons-pool2:2.3
     +--- com.eclipsesource.minimal-json:minimal-json:0.9.5
     +--- commons-cli:commons-cli:1.3.1 -> 1.4
     \--- ch.qos.logback:logback-classic:1.2.3
          +--- ch.qos.logback:logback-core:1.2.3
          \--- org.slf4j:slf4j-api:1.7.25
EN

回答 1

Stack Overflow用户

发布于 2019-02-12 08:55:12

尝试添加这一行

代码语言:javascript
复制
implementation "com.android.support:design:${rootProject.ext.supportLibVersion}"

或者你也可以用这个

代码语言:javascript
复制
implementation 'com.android.support:appcompat-v7:27.1.0'

implementation 'com.android.support:design:27.1.0'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54645915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档