这是我的问题。 我有一个Android库项目,它有3个 android模块。
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 ,构建就可以了。但是当我将它们包含在最终项目中时,错误仍然是相同的。
所以,如果你们可能有任何帮助,那就太好了。
由于