迁移到Gradle 3.0.0:错误 - D8:程序类型已存在

时间:2018-05-21 16:04:32

标签: android android-gradle build.gradle parceler

我正在将我的Android项目迁移到Gradle 4.4和Android Gradle插件3.1.2。 它有一个库模块,它依赖于parceler库并定义其依赖关系,如下所示:

库模块的build.gradle:

/tmp/xxx

这似乎编译好并生成我的aar文件。

此外,我的主应用程序模块也直接依赖于parceler模块,并在其build.gradle中包含上面的行作为依赖项,以及上面的aar文件。

主要应用模块的build.gradle:

...
// parceler for serialization (https://github.com/johncarl81/parceler)
implementation "org.parceler:parceler-api:1.0.4"
annotationProcessor "org.parceler:parceler:1.0.4"
...

一切正常,直到我尝试生成我的APK,但失败并出现以下错误。

...
api(group: 'com.example.mylibrary', name: 'mylibrary', version: "1.0.7", ext: 'aar') {
    transitive = true;
    changing = true
}
// parceler for serialization (https://github.com/johncarl81/parceler)
implementation "org.parceler:parceler-api:1.0.4"
annotationProcessor "org.parceler:parceler:1.0.4"
...

当我在Android studio中扩展我的库项目时,我在org.parceler包下看到了Parcels.class。但似乎类似的文件也是由同一个软件包下的主应用程序模块生成的,这导致了冲突。

1 个答案:

答案 0 :(得分:0)

升级到最新版本(当前为1.1.10)-我们摆脱了Parcels生成的类。