Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

NoSuchMethodError using commonc codec in Android application

I added the commons codec from apache.org (commons-codec-1.4.jar) in eclipse for my Android application following the instruction here. There is no error in the code. But when I run the application and call the function that use the codec the application stop and need a fore close.

In the logCat says:

Android Runtime: java.lang.NoSuchMethodError: org.apache.commons.codec.binary.Base64.encodeBase64String

the codeline is: String tmpStr = Base64.encodeBase64String(msg); //msg is a byte[]

The application is for a min SDK version = 7 (Android 2.1), so I can't use Android Base64

Any idea how can I solve the problem?

like image 334
DVV Avatar asked Feb 28 '11 21:02

DVV


2 Answers

I couldn't get the commons codec to run on a 2.1 emulator either. I gave up in the end and made my own, copying the code from:

Base64 encoder/decoder

It's only just over a hundred lines or so.

like image 190
NickT Avatar answered Sep 24 '22 19:09

NickT


I experienced the exact same problem. So i started browsing the android source code, and as it turns out Don's guess about Android having an implementation of org.apache.commons.code.binary is correct. he's wrong about the ability to access it, you can, but its version 1.2 of the apache commons, not version 1.4 or even 1.5. You can see for your self in the android source.

Also as a note, this question is a duplicate of this post.

like image 43
zarthross Avatar answered Sep 23 '22 19:09

zarthross