2014-06-30 113 views
0

我试图设置我的项目,以便我可以通过Android Studio运行单元测试和自动化测试。经过多次尝试,我终于在我的项目中获得了这个结构。Android Studio库模块参考

项目 - > Android的模块(带真正的应用程序在哪里运行自动化测试) - > Java库模块(业务逻辑类和我需要运行单元测试所有的东西)

我m还引用了Java模块上的一些Jar Lib,以便使用我编写的一些通用代码。

Android的模块引用库模块可以在下面的示例gradle这个脚本中可以看出:

dependencies { 
    compile project(':Core') 
    compile files(':Core/libs/fake_lib.jar') 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    compile 'com.android.support:appcompat-v7:19.+' 
} 

上的依赖关系部分中的第二行是需要的项目可以得到组装和运行,但问题是在第一次打电话给任何有一定的参考图书馆的类,该应用程序崩溃与NoClassDefFoundError

有谁知道为什么以及如何解决?

+1

将':Core/libs/fake_lib.jar'替换为'../Core/libs/fake_lib.jar'。或者更好地把这个库包含在核心本身 –

+0

@EugenMartynov你是对的,这个改变使它工作,但据我了解,我不应该在Android项目中引用这个库,因为它会与Java库。所以我最终把库放在我的本地maven上,并解决了这两个问题。无论如何感谢您的答案。 –

回答

0

由于此JAR是一个常用的库,我将用于许多项目,我最终将它放在我的本地maven存储库上,并像其他maven工件一样引用它。

这样我就不必在图书馆中的两个项目(Android和Java库)上参考它,我认为这是更好的方法。

+1

请注意Maven本地存储库。这是在其他开发人员/ CI机器上不可重复构建的常见问题 –

+0

这是一个很好的建议,确定这对开发团队来说是一个问题,但就我而言,我只是在开发一些私人作品。 –