导入的jar上的java.lang.VerifyError

时间:2011-03-23 23:22:00

标签: java android import jar verifyerror

我已将.jar导入到我的Eclipse Android项目中(将其导入libs文件夹并将jar添加到Java Build Path中的库),但是当我尝试使用它时,我得到了一个java.lang.VerifyError 。该库是Jiwigo 0.13.1.1;用于访问Piwigo图像库的Java库。我知道这应该有用,因为有一个名为RegalAndroid的开源android项目也使用它(虽然,旧版本,它复制了源而不是正确导入它)。 .jar是我计算机上库的唯一副本,所以如果是版本冲突错误我会感到惊讶。有什么想法吗?

这是我的错误日志(缩短,因为所有其余的都是正常的android内容):

FATAL EXCEPTION: main
java.lang.VerifyError: fr.mael.jiwigo.transverse.session.SessionManager
at com.terrapages.itemdetailsactivities.FavoritesDetailsActivity.initViews(FavoritesDetailsActivity.java:179)
at com.terrapages.itemdetailsactivities.FavoritesDetailsActivity.onResume(FavoritesDetailsActivity.java:83)
at android.app.Instrumentation.callActivityOnResume(Instrumentation.java:1149)
at android.app.Activity.performResume(Activity.java:3823)
at android.app.ActivityThread.performResumeActivity(ActivityThread.java:3118)
[...]

它崩溃的行(代码中的虚拟字符串值不同):

SessionManager sessionManager = new SessionManager("username", "password", "gallery-url");

这是代码中任何地方首次使用该库。

3 个答案:

答案 0 :(得分:3)

我是Jiwigo的开发者,今天下午偶然读了这篇文章。 由于我没有在Android上开发,我甚至不知道我的api与android不兼容。

所以在我阅读这篇文章之后,我对我的API进行了一些更改:我用最新的API替换了旧的Apache HttpClient版本:4.1(我认为它与android兼容不是吗?) 我删除了所有JDom引用。代码现在使用org.w3c.dom.Document代替。罐子在这里:http://maven.le-guevel.com/artifactory/libs-release-local/fr/mael/jiwigo/jiwigo-ws-api/0.2b/

正如我所说的那样,我今天下午刚刚进行了修改,但我没有很好地测试它,所以它可能不稳定(它似乎适用于我的项目)。

再见。

答案 1 :(得分:2)

  

有什么想法吗?

SessionManager正在使用Android中不存在的类或方法。假设this is the source for the class in question,没有任何方法可以在没有实质性修改的情况下在Android上运行,因为它使用:

  • 旧版本的Apache HttpClient
  • JDOM

这两者都不在Android中。

答案 2 :(得分:0)

在完成Android ADT和Java更新之后,我的项目出现了类似的问题。

尝试以下步骤

  1. 删除Android项目中外部库的链接。

  2. 将所有外部库(包括Google广告库)移至Android项目内的\ libs文件夹。

  3. 重新链接您的库,这些库现在存在于Project \ libs目录中。

  4. 希望这会有所帮助