简体   繁体   中英

Exception java.lang.NoSuchMethodError on java.util.Deque.push

It's really strange, Google Developer Console, error reporting page.

As it seems, my application crashes on several Android devices. The exception log provided says:

java.lang.NoSuchMethodError: java.util.Deque.push
at com.larvalabs.svgandroid.SVGParser$SVGHandler.<init>(SVGParser.java:869)
at com.larvalabs.svgandroid.SVGBuilder.build(SVGBuilder.java:147)
at myapp.graphic.PictureCache.getSvgPicture(PictureCache.java:59)
at myapp.graphic.PictureCache.getSvgPictureDrawable(PictureCache.java:65)
at myapp.activities.startup.ActivityStartup.setupCustomGraphic(ActivityStartup.java:92)
at myapp.activities.startup.ActivityStartup.onCreate(ActivityStartup.java:35)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1069)
...

I'm using that library:

http://code.google.com/p/svg-android-2/

I included the source cod, not simply linked the external library.

The code seems to fail on java.util.Deque.push ( NoSuchMethodError ). It's not a problem of the source code I've copied and pasted, it seems that no dequeue method is found on runtime! How it's possible? Can't imagine.

EDIT: The Deque is define:

Deque<Matrix> matrixStack = new LinkedList<Matrix>();

The code that raise the problem:

matrixStack.push(new Matrix());

Is it possible that new Matrix() returns a value that is not accepted by the push() method?

Your project references java.util.Deque which was only added in API level 9

( http://developer.android.com/reference/java/util/Deque.html )

Devices with API level < 9 will fail as they cannot call this Class/method as it doesn't exist on them.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM