Android Okhttp NoClassDefFoundError

Android Okhttp NoClassDefFoundError,android,noclassdeffounderror,okhttp,okio,Android,Noclassdeffounderror,Okhttp,Okio,我在eclipse上的android应用程序中使用OKHTTP2.0.0JAR。由于OkHttp现在依赖于Okio库,我还在我的项目中添加了Okio 1.0.0 jar。该项目编译得很好,没有编译错误,但当我在android设备上运行时,它给我提供了与OkHttp库类相关的NoClassDefFoundError 我已经将所有jar放在项目的libs文件夹中,并将它们添加到我的构建路径中,还尝试在“导出和订单”选项卡中检查它们,但它仍然不起作用 我想知道,既然okhttp依赖于okio,那么只需

我在eclipse上的android应用程序中使用OKHTTP2.0.0JAR。由于OkHttp现在依赖于Okio库,我还在我的项目中添加了Okio 1.0.0 jar。该项目编译得很好,没有编译错误,但当我在android设备上运行时,它给我提供了与OkHttp库类相关的
NoClassDefFoundError

我已经将所有jar放在项目的libs文件夹中,并将它们添加到我的构建路径中,还尝试在“导出和订单”选项卡中检查它们,但它仍然不起作用

我想知道,既然okhttp依赖于okio,那么只需添加两个JAR就可以了,或者我需要做些什么不同的事情

我也试过截击罐,效果很好,没有任何问题。任何人都可以帮助我,问题已经存在3到4天了

更新
我还尝试了android studio,并在构建依赖项中添加了okhttp库,但仍然不起作用。

在okhttp 2.0.0中,语言级别更新为Java 7

请参见此处的更改日志

为了解决这个问题,您需要更新到Java7

此外,在这一点上,您可能还需要将目标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.
警告:com/squareup/okhttp/.class主版本51高于50,这是此编译器支持的最高主版本。
第二个来自德克斯

[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
[dx]故障处理:
[dx]坏类文件魔术(cafebabe)或版本(0033.0000)
[dx]…在解析com/squareup/okhttp/.class时
[dx]…在处理com/squareup/okhttp/.class时

转到
项目/属性/Java构建路径/顺序并导出
——确保在Android依赖项和支持库前面有一个检查,如果您使用它的话。标记所有复选框,然后单击应用并清理项目。

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

参考自

我还尝试下载源代码,并尝试自己使用maven编译源代码,但仍然不起作用。由于maven构建成功,这意味着我的java版本没有问题(我有Java7)。同样在变更日志中,它说安卓2.3,所以没有问题。@KishuAgarwal看看你的构建日志,那里可能有一些提示。我已经更新了我的答案,以显示我遇到此问题时的日志记录。谢谢您的回复。你是对的,我确实在我的构建中看到了那些糟糕的类文件魔法错误。我将尝试更新我的java版本。@KishuAgarwal如果这不能解决它,请尝试我回答的第二部分,并更新您的构建工具,以解决问题。Java update没有做任何事情,只是将我的sdk从18改为19,解决了这个问题。谢谢你的推荐。我在这个问题上沮丧了这么久。你说“这对我有用”是什么意思。您刚刚将该库导入到项目中了吗?下载jar文件并将jar引用添加到模块中