Okhttp NoClassDefFoundError

时间:2014-07-06 10:21:23

标签: android noclassdeffounderror okhttp okio

我在eclipse的android应用程序中使用OkHttp 2.0.0 jar。由于OkHttp现在依赖于Okio库,我还在我的项目中添加了Okio 1.0.0 jar。项目编译良好,没有编译错误但是当我在我的Android设备上运行时,它给了我NoClassDefFoundError所有与OkHttp库类。

我已将所有jar放在项目的libs文件夹中,并将它们添加到我的构建路径中,并尝试在“导出和顺序”选项卡中检查它们,但它仍无法正常工作。

我想知道,因为okhttp依赖于okio,只是添加两个罐子都可以正常工作或者我必须做任何不同的事情。

我也尝试过排球罐,它没有任何问题都可以正常工作。任何人都可以帮助我,这个问题现在已经存在了3到4天。

更新 我也尝试了android studio并在构建依赖中添加了okhttp库,但仍无效。

3 个答案:

答案 0 :(得分:6)

OkHttp v2.0依赖于Okio v1.0。你可以下载它的jar here。这对我有用

参考 https://github.com/square/okhttp/issues/870

答案 1 :(得分:1)

在OkHttp 2.0.0中,语言级别已更新为Java 7。

请参阅此处更改日志https://github.com/square/okhttp/blob/master/CHANGELOG.md

为了解决问题,您需要更新到java 7。

此时你可能还需要将目标sdk更改为kitkat(API 19),并更新你的构建工具等,以便android与java 7一起玩得很好


编辑:当我升级到okHttp 2.0.0并使用ant构建时,我遇到了同样的问题。虽然构建似乎成功,但我得到了NoClassDefFoundError。通过我的构建日志我有一大堆无声错误

第一个来自javac

warning: com/squareup/okhttp/<classname>.class major version 51 is newer than 50, the highest major version supported by this compiler.

和第二个来自dex

[dx] trouble processing:
[dx] bad class file magic (cafebabe) or version (0033.0000)
[dx] ...while parsing com/squareup/okhttp/<classname>.class
[dx] ...while processing com/squareup/okhttp/<classname>.class

答案 2 :(得分:0)

转到Project/Properties/Java Build Path/Order and Export - 如果您使用,请确保在Android依赖项和支持库前面进行检查。选中所有复选框,然后单击“应用”并清除项目。