使用release for apk for mp4parser lib时找不到类

时间:2015-11-26 06:11:57

标签: android

Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: com.coremedia.iso.boxes.UnknownBox
    at com.coremedia.iso.PropertyBoxParserImpl.createBox(PropertyBoxParserImpl.java:112)
    at com.coremedia.iso.AbstractBoxParser.parseBox(AbstractBoxParser.java:102)
    at com.googlecode.mp4parser.BasicContainer.next(BasicContainer.java:155)
    at com.googlecode.mp4parser.BasicContainer.hasNext(BasicContainer.java:131)
    at com.googlecode.mp4parser.util.LazyList$1.hasNext(LazyList.java:55)
    at com.googlecode.mp4parser.BasicContainer.getBoxes(BasicContainer.java:84)
    at com.googlecode.mp4parser.BasicContainer.getBoxes(BasicContainer.java:78)
    at com.googlecode.mp4parser.authoring.container.mp4.MovieCreator.build(MovieCreator.java:48)
    at com.googlecode.mp4parser.authoring.container.mp4.MovieCreator.build(MovieCreator.java:35)
    at eu.sedignexlimited.dazzledcars.activities.CutVideoActivity$TrimVideo.doInBackground(CutVideoActivity.java:550)
    at eu.sedignexlimited.dazzledcars.activities.CutVideoActivity$TrimVideo.doInBackground(CutVideoActivity.java:533)
    at android.os.AsyncTask$2.call(AsyncTask.java:292)
    at java.util.concurrent.FutureTask.run(FutureTask.java:237)
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
    at java.lang.Thread.run(Thread.java:818) 
Caused by: java.lang.ClassNotFoundException: com.coremedia.iso.boxes.UnknownBox
    at java.lang.Class.classForName(Native Method)
    at java.lang.Class.forName(Class.java:309)
    at java.lang.Class.forName(Class.java:273)
    at com.coremedia.iso.PropertyBoxParserImpl.createBox(PropertyBoxParserImpl.java:86)
    at com.coremedia.iso.AbstractBoxParser.parseBox(AbstractBoxParser.java:102) 
    at com.googlecode.mp4parser.BasicContainer.next(BasicContainer.java:155) 
    at com.googlecode.mp4parser.BasicContainer.hasNext(BasicContainer.java:131) 
    at com.googlecode.mp4parser.util.LazyList$1.hasNext(LazyList.java:55) 
    at com.googlecode.mp4parser.BasicContainer.getBoxes(BasicContainer.java:84) 
    at com.googlecode.mp4parser.BasicContainer.getBoxes(BasicContainer.java:78) 
    at com.googlecode.mp4parser.authoring.container.mp4.MovieCreator.build(MovieCreator.java:48) 
    at com.googlecode.mp4parser.authoring.container.mp4.MovieCreator.build(MovieCreator.java:35) 
    at eu.sedignexlimited.dazzledcars.activities.CutVideoActivity$TrimVideo.doInBackground(CutVideoActivity.java:550) 
    at eu.sedignexlimited.dazzledcars.activities.CutVideoActivity$TrimVideo.doInBackground(CutVideoActivity.java:533) 
    at android.os.AsyncTask$2.call(AsyncTask.java:292) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
    at java.lang.Thread.run(Thread.java:818) 
Caused by: java.lang.ClassNotFoundException: Didn't find class "com.coremedia.iso.boxes.UnknownBox" on path: DexPathList[[zip file "/data/app/eu.sedignexlimited.dazzledcars-1/base.apk"],nativeLibraryDirectories=[/data/app/eu.sedignexlimited.dazzledcars-1/lib/arm, /vendor/lib, /system/lib]]
    at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
    at java.lang.Class.classForName(Native Method) 
    at java.lang.Class.forName(Class.java:309) 
    at java.lang.Class.forName(Class.java:273) 
    at com.coremedia.iso.PropertyBoxParserImpl.createBox(PropertyBoxParserImpl.java:86) 
    at com.coremedia.iso.AbstractBoxParser.parseBox(AbstractBoxParser.java:102) 
    at com.googlecode.mp4parser.BasicContainer.next(BasicContainer.java:155) 
    at com.googlecode.mp4parser.BasicContainer.hasNext(BasicContainer.java:131) 
    at com.googlecode.mp4parser.util.LazyList$1.hasNext(LazyList.java:55) 
    at com.googlecode.mp4parser.BasicContainer.getBoxes(BasicContainer.java:84) 
    at com.googlecode.mp4parser.BasicContainer.getBoxes(BasicContainer.java:78) 
    at com.googlecode.mp4parser.authoring.container.mp4.MovieCreator.build(MovieCreator.java:48) 
    at com.googlecode.mp4parser.authoring.container.mp4.MovieCreator.build(MovieCreator.java:35) 
    at eu.sedignexlimited.dazzledcars.activities.CutVideoActivity$TrimVideo.doInBackground(CutVideoActivity.java:550) 
    at eu.sedignexlimited.dazzledcars.activities.CutVideoActivity$TrimVideo.doInBackground(CutVideoActivity.java:533) 
    at android.os.AsyncTask$2.call(AsyncTask.java:292) 
    at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
    at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587) 
    at java.lang.Thread.run(Thread.java:818) 
Suppressed: java.lang.ClassNotFoundException: com.coremedia.iso.boxes.UnknownBox
    at java.lang.Class.classForName(Native Method)
    at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
    at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
        ... 21 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available

1 个答案:

答案 0 :(得分:3)

在proguard文件中添加这些行...希望这可以解决您的问题

-keep class * implements com.coremedia.iso.boxes.Box { *; }
-dontwarn com.coremedia.iso.boxes.**
-dontwarn com.googlecode.mp4parser.authoring.tracks.mjpeg.**
-dontwarn com.googlecode.mp4parser.authoring.tracks.ttml.**