我正在开发一个使用外部库db4o的android项目。好吧,我已经创建了一个测试项目,我正在尝试测试我的PersistenceManager,这是一个控制数据库生命周期的对象,并公开ObjectContainer api的一部分(ObjectContainer是db4o库中的一个对象)。当我开始编写测试时,我不得不访问一个方法,它从db4o lib(Query对象)返回给我一个对象。这导致编译错误,因为该对象对测试项目不可见。
为了尝试解决这个问题,我还将lib引用放在测试项目上,这解决了编译问题。但是当我运行测试时,第一次访问db4o lib中的对象时会收到以下错误(这发生在应用程序代码中,而不是在测试代码中):
java.lang.IllegalAccessError: Class ref in pre-verified class resolved to unexpected implementation
at br.com.jongo.referencefile.PersistenceManager.grantDBStart(PersistenceManager.java:23)
at br.com.jongo.referencefile.PersistenceManager.getQuery(PersistenceManager.java:38)
at...
然后我将测试复制到应用程序项目中。通过这种方式,我可以从应用程序项目运行测试(对AndroidManifest.xml进行一些调整)。但我真的希望在一个单独的项目中进行测试。我怎么能这样做?