From d4fabc0eebe782128ac7ba9e511cc87da823faba Mon Sep 17 00:00:00 2001 From: ryohey Date: Wed, 12 Aug 2020 13:31:00 +0900 Subject: [PATCH] Cast ByteBuffer to Buffer Fix: Fatal Exception: java.lang.NoSuchMethodError: No virtual method limit(I)Ljava/nio/ByteBuffer; in class Ljava/nio/ByteBuffer; or its super classes (declaration of 'java.nio.ByteBuffer' appears in /system/framework/core-oj.jar) --- .../src/main/java/org/mp4parser/AbstractBoxParser.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/isoparser/src/main/java/org/mp4parser/AbstractBoxParser.java b/isoparser/src/main/java/org/mp4parser/AbstractBoxParser.java index c5c0e7cb3..f9b888981 100644 --- a/isoparser/src/main/java/org/mp4parser/AbstractBoxParser.java +++ b/isoparser/src/main/java/org/mp4parser/AbstractBoxParser.java @@ -81,9 +81,9 @@ public ParsableBox parseBox(ReadableByteChannel byteChannel, String parentType) long contentSize; if (size == 1) { - header.get().limit(16); + ((Buffer)header.get()).limit(16); byteChannel.read(header.get()); - header.get().position(8); + ((Buffer)header.get()).position(8); size = IsoTypeReader.readUInt64(header.get()); contentSize = size - 16; } else if (size == 0) { @@ -92,11 +92,11 @@ public ParsableBox parseBox(ReadableByteChannel byteChannel, String parentType) contentSize = size - 8; } if (UserBox.TYPE.equals(type)) { - header.get().limit(header.get().limit() + 16); + ((Buffer)header.get()).limit(((Buffer)header.get()).limit() + 16); byteChannel.read(header.get()); usertype = new byte[16]; - for (int i = header.get().position() - 16; i < header.get().position(); i++) { - usertype[i - (header.get().position() - 16)] = header.get().get(i); + for (int i = ((Buffer)header.get()).position() - 16; i < ((Buffer)header.get()).position(); i++) { + usertype[i - (((Buffer)header.get()).position() - 16)] = header.get().get(i); } contentSize -= 16; }