Kishu Agarwal
Kishu Agarwal

Reputation: 388

Okhttp NoClassDefFoundError

I am using OkHttp 2.0.0 jar in my android application on eclipse. As OkHttp is now dependent on Okio library, I also added Okio 1.0.0 jar in my project.The project compiles fine with no compilation errors but when I run on my android device, it gives me this NoClassDefFoundError all relating to the OkHttp library classes.

I have placed all the jars in my libs folder of the project and added them to my build path and also tried checking them in the Export and Order Tab, but still it is not working.

I wanted to know since okhttp is dependent on okio, will just adding both jars would work fine or would I have to do anything different.

I have also tried the volley jar and it works all fine without any trouble.Anyone could help me out here, the problem is around for now 3 to 4 days.

Update I also tried the android studio and added the okhttp library in the build dependency but still not working.

Upvotes: 5

Views: 8845

Answers (3)

mzain
mzain

Reputation: 383

OkHttp v2.0 depends on Okio v1.0. You can download its jar here. This worked for me

Reference from https://github.com/square/okhttp/issues/870

Upvotes: 7

etra440
etra440

Reputation: 36

In OkHttp 2.0.0 the language level was updated to Java 7.

See Change log here https://github.com/square/okhttp/blob/master/CHANGELOG.md

In order to fix the issue you will need to update to java 7.

Also at this point you may also need change the target sdk to kitkat (API 19), and update your build tools etc in order for android to play nice with java 7


EDIT: I had the same problem when i upgraded to okHttp 2.0.0 and built with ant. Although the build seemed to succeed i got the NoClassDefFoundError. Going through my build logs I had a whole bunch of silent errors

The first came from javac

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

and the second from 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

Upvotes: 1

Siddharth_Vyas
Siddharth_Vyas

Reputation: 10100

Go to Project/Properties/Java Build Path/Order and Export -- Make sure there's a check in front of Android Dependencies and the support library, if you use it. Mark all checkboxes and Click on Apply and clean the project.

Upvotes: 0

Related Questions