Я использую mp4parser
для объединения videos
. Приложение работает отлично при работе от AS . Но если я установлю приложение вручную ( TestFairy
и запустил APK
), или если я запустил его из TestFairy
, приложение TestFairy
из строя.
Это началось, когда я обновил свой Target Sdk
до Lollipop
. Я добавил
`aspectjrt-1.7.3.jar` `isoparser-1.0-RC-27.jar`
В libs
в моем проекте.
Я также пробовал с versions
ниже
`aspectjrt-1.8.5.jar` `isoparser-1.0-RC-37.jar` `isoparser-1.0.6.jar`.
Не уверен, правильно ли он работает, но он работает с Android Studio
затем с помощью TestFairy
или Manual install
.
Ошибка говорит
com.coremedia.iso.boxes.FileTypeBox
отсутствует
Но его там в isoparser jar
.
Что мне не хватает, это проблема с версией?
Мое устройство работает Android 4.2.2
управлением Android 4.2.2
это также может быть проблемой, если мой целевой SDK
– Android 5.0
Исключением является:
Caused by: java.lang.ClassNotFoundException:com.coremedia.iso.boxes.FileTypeBox Caused by: java.lang.ClassNotFoundException: Didn't find class "com.coremedia.iso.boxes.FileTypeBox" on path: /data/app/com.myapp.appname-1.apk
Извините, что после долгого разочарования я обнаружил, что град не упаковывал мои файлы lib в apk, он не имел ничего общего с mp4Parser, в конце концов после обновления Android Studio все SDK и Gradle apk были упакованы должным образом.
Всякий раз, когда вы получаете исключение ClassNotFound, ваш загрузчик классов не может найти класс, который должен работать. Он не имеет ничего общего с парсером MP4, который не работает с 4.2.2, как было предложено выше.
Вы используете Gradle? Является ли класс связанным в виде библиотеки в файле сборки градимента?
Попробуйте добавить это под зависимостями {} в файле build.gradle вашего приложения:
compile fileTree(dir: 'libs', include: '*.jar')
Это будет включать все jar-файлы в вашей папке libs в окончательной сборке.
Добавьте эти 2 строки в свой proguard-rules.pro
. Это сработало для меня.
-keep class com.coremedia.iso.boxes.** { *; } -keep class com.googlecode.mp4parser.boxes.mp4.ESDescriptorBox { *; }
Сделайте свой build.gradle
для использования proguard-rules.pro
следующим образом:
android { buildTypes { release { minifyEnabled true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } }