9

mp4parser用来合并videos从AS运行时,该应用程序运行完美。但是如果我手动安装应用程序(传输并运行APK)或者如果我从运行它TestFairy,应用程序会崩溃。

当我将我的更新Target SdkLollipop. 我添加了

`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崩溃。TestFairyManual install

错误说

com.coremedia.iso.boxes.FileTypeBox失踪

但它在isoparser jar.

我错过了什么,这是版本问题吗?

我的设备正在运行Android 4.2.2,如果我的目标SDKAndroid 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
4

4 回答 4

1

对不起,迟到的答案,我很沮丧后发现,gradle没有将我的lib文件打包在apk中,它与mp4Parser无关,最终在更新Android Studio后,所有SDK和Gradle都正确打包了apk。

于 2015-06-10T21:08:03.533 回答
0

每当您遇到 ClassNotFound 异常时,您的类加载器都找不到它需要运行的类。如上所述,它与 MP4 解析器无法在 4.2.2 上工作无关。

你使用 Gradle 吗?该类是否捆绑为您的 gradle 构建文件中的库?

尝试在应用的 build.gradle 文件中的 dependencies { } 下添加:

  compile fileTree(dir: 'libs', include: '*.jar')

这将包括最终构建中 libs 文件夹中的所有 jar 文件。

于 2015-05-27T10:21:18.043 回答
0

在您的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'
        }
    }
}
于 2016-05-13T10:36:22.330 回答
0

尝试清除 mp4parser 类中的目标注释代码

于 2019-09-24T09:13:39.317 回答