dagger2带有工厂的多个dex文件

时间:2015-09-01 12:07:06

标签: android build dex dagger-2

这是我的问题。 我有一个Android库项目,它有3个 android模块

  • 模块A(com.lib.a)
  • 模块B(com.lib.b)
  • 模块C(com.lib.c)

C android模块只是A和B中包含的工具箱,它包含例如类<Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Label Grid.Row="0">Top row</Label> <Label Grid.Row="2">Bottom row</Label> </Grid> ,并且A和B都需要那个解析器。

所以A和B的com.lib.c.APIExceptionParser都包含

build.gradle

问题是,我有一个 Dagger2模块(已在C模块中)提供解析器

compile project(':C')

com.lib.c.WebModule

此模块包含在A和B中及其 Dagger2组件

@Module public class WebModule { @Provides public ErrorParser<ApiException> provideErrorParser(ApiExceptionParser apiExceptionParser) { return apiExceptionParser; }

com.lib.a.AComponent

@Singleton @Component(modules = {AModule.class, WebModule.class}) public interface AComponent { void inject(SomeClass class); }

com.lib.b.BComponent

然后,当我尝试构建项目时,构建因以下原因而被破坏:

@Singleton
@Component(modules = {BModule.class, WebModule.class})
public interface BComponent {
    void inject(SomeClass class);
}

因此文件:dexDebug Unknown source file : UNEXPECTED TOP-LEVEL EXCEPTION: Unknown source file : com.android.dex.DexException: Multiple dex files define Lcom/lib/c/ApiExceptionParser_Factory; Unknown source file : at com.android.dx.merge.DexMerger.readSortableTypes(DexMerger.java:596) Unknown source file : at com.android.dx.merge.DexMerger.getSortedTypes(DexMerger.java:554) Unknown source file : at com.android.dx.merge.DexMerger.mergeClassDefs(DexMerger.java:535) Unknown source file : at com.android.dx.merge.DexMerger.mergeDexes(DexMerger.java:171) Unknown source file : at com.android.dx.merge.DexMerger.merge(DexMerger.java:189) Unknown source file : at com.android.dx.command.dexer.Main.mergeLibraryDexBuffers(Main.java:502) Unknown source file : at com.android.dx.command.dexer.Main.runMonoDex(Main.java:334) Unknown source file : at com.android.dx.command.dexer.Main.run(Main.java:277) Unknown source file : at com.android.dx.command.dexer.Main.main(Main.java:245) Unknown source file : at com.android.dx.command.Main.main(Main.java:106) A B

中生成两次

当然,如果我逐个构建 A B ,构建就可以了。但是当我将它们包含在最终项目中时,错误仍然是相同的。

所以,如果你们可能有任何帮助,那就太好了。

由于

0 个答案:

没有答案