如何导入一个Android库并在生产代码和测试中使用?

6

我从我的应用程序中提取了一堆功能到一个库中。问题在于我希望在生产代码和测试中都使用该库的类。问题是我的应用程序、我的库和测试代码是独立的模块,所以应用程序代码和测试代码都需要依赖于该库。当我尝试编译测试模块时,我会得到以下错误:

UNEXPECTED TOP-LEVEL EXCEPTION:
java.lang.IllegalArgumentException: already added: (some class)

这段话有点神秘,但其实是在说我尝试将相同的类添加到 .dex 文件中超过一次。这并不太令人惊讶,因为测试代码在编译时依赖于库代码和应用程序,而应用程序在编译时也依赖于库。如何设置依赖项(或更改代码)以避免这种情况?

注意:我使用的是 IntelliJ IDEA 10.5 CE,所以我使用他们的术语,但我认为问题至少在概念上与 IDE 无关。
2个回答

2

这是IDEA中的一个Bug,我们已经提交了一个问题,请观看/投票


非常感谢。当问题被解决后,我会接受你的答案。 - Lyudmil

0

你好,我感觉同一个jar包被用不同的方式添加了多次。

有两种方法可以将jar包放入您的项目中。

Right on Project->Properties->Java Build Path->Add Jars->
Right on Project->Properties->Java Build Path->Add External jars->

首先删除所有的jar包。在您的应用程序文件夹内创建一个文件夹,将所有所需的jar包放入其中。

Right on Project->Properties->Java Build Path->Add Jars-> select your project folder and select the jar file

谢谢 Deepak


感谢您的回复,Deepak。我的问题略有不同,因为我的库不是一个简单的.jar文件。它是一个Android库项目,所以我将其作为单独的模块导入,并添加了一个模块依赖项。 - Lyudmil

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接