sannies / mp4parser

A Java API to read, write and create MP4 files
Apache License 2.0
2.75k stars 566 forks source link

java.lang.NoSuchMethodError when creating new IsoFile #323

Open TonyXu09 opened 6 years ago

TonyXu09 commented 6 years ago

I am getting a crash when trying to create an IsoFile. I am running Android and java jdk 1.8.0_121

java.lang.NoSuchMethodError: No virtual method rewind()Ljava/nio/ByteBuffer; in class Ljava/nio/ByteBuffer; or its super classes (declaration of 'java.nio.ByteBuffer' appears in /system/framework/core-oj.jar) at org.mp4parser.AbstractBoxParser.parseBox(AbstractBoxParser.java:56) at org.mp4parser.BasicContainer.initContainer(BasicContainer.java:107) at org.mp4parser.IsoFile.<init>(IsoFile.java:57) at org.mp4parser.IsoFile.<init>(IsoFile.java:44)

That is my crash.

Is there a particular jdk that I should be using? This was working fine before when I was using build 1.9.27

alexeyvasilyev commented 6 years ago

I got the same problem with latest 1.9.37 on Android. No issue on 1.9.36 via maven repository.

java.lang.NoSuchMethodError: No virtual method rewind()Ljava/nio/ByteBuffer; in class Ljava/nio/ByteBuffer; or its super classes (declaration of 'java.nio.ByteBuffer' appears in /system/framework/core-oj.jar)
        at org.mp4parser.support.AbstractBox.getBox(AbstractBox.java:120)
        at org.telegram.messenger.video.MP4Builder.createMovie(MP4Builder.java:71)

If I put the latest isoparser source code directly into the project and compile, everything is ok (no crash).

Could be an issue with a build for maven repository?

sannies commented 6 years ago

I accidentally built 1.9.37 with Java 9 I believe. I will rebuilt with Java 8 in the next days and push a new version to central.

alexeyvasilyev notifications@github.com schrieb am Fr., 3. Aug. 2018, 22:22:

I got the same problem with latest 1.9.37 on Android. No issue on 1.9.36 via maven repository.

java.lang.NoSuchMethodError: No virtual method rewind()Ljava/nio/ByteBuffer; in class Ljava/nio/ByteBuffer; or its super classes (declaration of 'java.nio.ByteBuffer' appears in /system/framework/core-oj.jar)
    at org.mp4parser.support.AbstractBox.getBox(AbstractBox.java:120)
    at org.telegram.messenger.video.MP4Builder.createMovie(MP4Builder.java:71)

If I put the latest isoparser source code directly into the project and compile, everything is ok (no crash).

Could be an issue with a build for maven repository?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/sannies/mp4parser/issues/323#issuecomment-410366214, or mute the thread https://github.com/notifications/unsubscribe-auth/AAKUD-elF7X0imy8cFQQ5JGGYtbfVFFNks5uNLDsgaJpZM4VuZ-W .

eraycantazeguney commented 6 years ago

any news on that?

alexeyvasilyev commented 5 years ago

Issue still not fixed. sannies, please fix that. 1.9.37 is completely unusable on Android.

x011 commented 5 years ago

I accidentally built 1.9.37 with Java 9 I believe. I will rebuilt with Java 8 in the next days and push a new version to central. alexeyvasilyev notifications@github.com schrieb am Fr., 3. Aug. 2018, 22:22: I got the same problem with latest 1.9.37 on Android. No issue on 1.9.36 via maven repository. java.lang.NoSuchMethodError: No virtual method rewind()Ljava/nio/ByteBuffer; in class Ljava/nio/ByteBuffer; or its super classes (declaration of 'java.nio.ByteBuffer' appears in /system/framework/core-oj.jar) at org.mp4parser.support.AbstractBox.getBox(AbstractBox.java:120) at org.telegram.messenger.video.MP4Builder.createMovie(MP4Builder.java:71) If I put the latest isoparser source code directly into the project and compile, everything is ok (no crash). Could be an issue with a build for maven repository? — You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub <#323 (comment)>, or mute the thread https://github.com/notifications/unsubscribe-auth/AAKUD-elF7X0imy8cFQQ5JGGYtbfVFFNks5uNLDsgaJpZM4VuZ-W .

Can you please push version 1.9.37 java 8? It's useless at the moment. Thank you.

TheFarmer1 commented 5 years ago

Problem appears to be that the library was built with a JDK > java 8. Even with compatibility mode set lower the problem is still there. Please compile with JDK 8 or lower or cast as described in the following bug.
https://github.com/apache/felix/pull/114

irenius commented 5 years ago

Any news on this @sannies ? A new build with java 8 would be greatly appreciated.

alexeyvasilyev commented 5 years ago

Looks like @sannies does not care anymore about this project.

davidnir1 commented 5 years ago

Any ideas if this issue has been fixed yet?

talklittle commented 5 years ago

@sannies The same problem arises with the new published version 1.9.38

HBiSoft commented 5 years ago

@sannies Older versions has the OutOfMemoryError issue and 1.9.37/1.9.38 has this issue. Currently, this library is completely unusable for Android developers.

Can you please let us know if you are going to fix this and if not, how can we fix it ourselves?

ANY feedback would be appreciated.

HBiSoft commented 5 years ago

@sannies

After reading more about this - You can cast ByteBuffer to Buffer then you can compile the project with JDK9 and have it running on JDK8.

talklittle commented 4 years ago

This issue appears fixed with version 1.9.41 thanks to commit 0fdd054d7cd65b0328ec685e0e8ac20a16216fe6

Thank you @sannies ! :tada:
And @HBiSoft for pointing out the potential solution.

kerimovscreations commented 4 years ago

I'm facing this issue still with 1.9.41 on Android

HBiSoft commented 4 years ago

@kerimovscreations This is probably because you are not using JDK8. You should implement it in your project, have a look here - https://developer.android.com/studio/write/java8-support

HBiSoft commented 4 years ago

@YitianTonyXu Please close this issue. It is fixed.