我有一个应用程序,其中androidTest
配置已经命中了臭名昭着的dex 64k method limit,其中应用程序和测试库依赖关系有助于方法计数。
为了让方法计数再次低于64k,我想要删除一些依赖项。对于实际应用,我已经取代了
app
+-- largeDependency
带有一个风味包装库:
app
+-- dependencyWrapper
+-- largeDependency
对于测试配置,我想将dependencyWrapper
替换为没有引入largeDependency
的存根风格:
androidTest
+-- app
+-- dependencyWrapperStub
如何覆盖测试配置中的构建风格?天真的方法
compile project(path: 'dependencyWrapper', configuration: 'prod')
androidTestCompile project(path: 'dependencyWrapper', configuration: 'stub')
不起作用,因为测试配置依赖于带来其依赖关系的app
配置,现在有两个包装库副本。
答案 0 :(得分:0)
我最终做的是重构依赖项:
app
+-- appLibrary
| +-- dependencyWrapperInterface
+-- dependencyWrapperImpl
+-- dependencyWrapperInterface
+-- largeDependency
旧应用程序现在是一个链接appLibrary
模块的库项目dependencyWrapperInterface
。它实际上只是一个空存根实现的接口。瘦app
项目现在包含dependencyWrapperImpl
模块,该模块实现相同的接口并引入largeDependency
来执行此操作。 app
将dependencyWrapperImpl
接口实现注入appLibrary
。
测试在appLibrary
上运行,依赖性设置减少,现在再次低于64k:
androidTest
+-- appLibrary
+-- dependencyWrapperInterface