Android IntelliJ 10.5:如何不添加;测试“;生成的.apk文件中的作用域依赖项?

Android IntelliJ 10.5:如何不添加;测试“;生成的.apk文件中的作用域依赖项?,android,intellij-idea,apk,Android,Intellij Idea,Apk,我在IntelliJ的Android项目中添加了几个依赖项,用于单元测试(JUnit4,JMock,SQLite jdbc,等等)。我在模块依赖项设置中将它们都定义为“测试”范围,以便它们仅在运行我的unt测试时使用,而不会妨碍生产代码 我的问题是,当生成.apk文件时,它基本上忽略了“test”范围设置,并包含了所有不需要的依赖项,这将.apk的大小提高了十几MB 有没有办法防止这种情况发生?Android测试可以在设备上运行,因此实际运行它们可能需要测试依赖项。如果您在测试中使用的类作为An

我在IntelliJ的Android项目中添加了几个依赖项,用于单元测试(
JUnit4
JMock
SQLite jdbc
,等等)。我在模块依赖项设置中将它们都定义为“测试”范围,以便它们仅在运行我的unt测试时使用,而不会妨碍生产代码

我的问题是,当生成.apk文件时,它基本上忽略了“test”范围设置,并包含了所有不需要的依赖项,这将.apk的大小提高了十几MB


有没有办法防止这种情况发生?

Android测试可以在设备上运行,因此实际运行它们可能需要测试依赖项。如果您在测试中使用的类作为Android平台的一部分已经在设备上可用,您可以尝试将作用域设置为提供的

我说的是我的业务逻辑的基本单元测试,我不在设备或模拟器上运行,我通过不使用Android SDK的普通JVM运行它们,所以我确信在.apk上永远不需要它们(我有另一套UI测试,使用Robotium)-我不知道有一个“提供的”范围,我会检查它,听起来它可能会解决我的问题,谢谢你也可以尝试在IDEA中为你的测试制作一个单独的Java模块,而不必在设备上运行。是的,我想避免这种情况,想知道在做这件事之前还有没有别的办法。我不喜欢有多个模块,我更喜欢把所有的东西都放在一个公共的模块中——我会先测试“提供的”范围。不幸的是,提供的似乎没有改变任何东西。JAR仍然在apk中…所以我最终为我的单元测试创建了一个新模块,感谢您的帮助