对于某些类,我在使用DexGuard运行-encryptclasses时遇到问题。这个问题只会在运行Robolectric单元测试时发生。我从任何被DexGuard混淆和加密的类中得到一个DexGuard。如果我关闭加密类标记,它在Robolectric中工作。
这种配置也适用于设备和模拟器:在Android环境中运行应用程序(在Dalvik和ART设备和模拟器中进行测试)工作得很好。Android仪器测试也是有效的。只有在运行Robolectric时,我才会得到一个NullPointerException。如果我禁用DexGuard加密类,一切都在Robolectric中工作。
DexGuard正在我所依赖的库中使用。这个库被添加到我的gradle模块的libs文件夹中。
我会将此作为Robolectric问题发布,但如果没有DexGuard工具的许可,它们很可能无法复制。
安装程序是:
发布于 2015-08-28 05:22:08
Robolectric非常密集地使用反射,任何类型的混淆都很容易破坏这一功能。
我将创建用于测试目的的构建配置,在那里我将关闭右转。与默认情况下的调试相同,默认情况下这不会混淆您的代码。
单元测试的问题是测试一小部分功能,而不是测试构建过程与混淆和代码功能的组合。
我也会写信给DexGuard的人,看看右后卫是否在正确的地方做混淆。我的理解是,在VM上运行should测试不应该被任何混淆。
https://stackoverflow.com/questions/32257355
复制相似问题