1

In my project I use jackson json parser. From market I have several error NoSuchMethodError. From logs I understand that device (Galaxy Tab (GT-P1000), android version 2.21) simply doesn't know this method. It was introdused in java 1.6. I thought that all I need is to build apk with right java version. But now I don't know that to think.
So first question - what is the reason of this?
Second - how to fix? What minSdkVersion should I point?

 Caused by: java.lang.NoSuchMethodError: java.util.Arrays.copyOf 
at com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.copyArrays(CharsToNameCanonicalizer.java:603)
at com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer._addSymbol(CharsToNameCanonicalizer.java:490) 
at com.fasterxml.jackson.core.sym.CharsToNameCanonicalizer.findSymbol(CharsToNameCanonicalizer.java:473)     at com.fasterxml.jackson.core.json.ReaderBasedJsonParser._parseName(ReaderBasedJsonParser.java:1259) 
at com.fasterxml.jackson.core.json.ReaderBasedJsonParser.nextToken(ReaderBasedJsonParser.java:618) at com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer.deserializeObject(JsonNodeDeserializer.java:210) 
at com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:62) 
at com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:14) 
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3051) 
at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:1818)
Alex Zaitsev
  • 2,013
  • 4
  • 30
  • 56
  • You have to remember that Android doesn't use Java *exactly*. Check out this answer and follow the breadcrumbs to other answers: http://stackoverflow.com/questions/7535385/how-does-androids-java-version-relate-to-a-java-se-version – MarsAtomic Oct 10 '14 at 21:24

2 Answers2

2

Also note: the last Jackson version to only require Java 5 is Jackson 2.3. Baseline was finally increased for Jackson 2.4, to require Java 6 (JDK 1.6).

So you may need to use Jackson 2.3.3 version; because of this compatibility limitation, 2.3 branch is maintained and will receive critical bug fixes. It is also the last Jackson version for which there is Scala 2.9 module (later versions support 2.10 and 2.11).

StaxMan
  • 113,358
  • 34
  • 211
  • 239
1

I believe you need to have a minimum of API version 9 to use Arrays.copyOf(...).

Here is the Arrays class as part of the Android SDK. Each method will show the version of API you need in order to use it in your code. Feel free to filter by API level on that page. Classes/methods you can't use for the selected API will be grayed out:

enter image description here

Voicu
  • 16,921
  • 10
  • 60
  • 69