我使用mp4parser
合并videos
。从 A.S 运行时,该应用程序运行完美。但如果我手动安装应用程序(转移并运行APK
),或者如果我从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
如果我的目标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
答案 0 :(得分:1)
对不起迟到的答案,我发现很多挫折之后,gradle没有将我的lib文件打包到apk中,它与mp4Parser无关, 最终在更新Android Studio之后,所有SDK和Gradle正确打包了apk。
答案 1 :(得分:0)
每当你得到ClassNotFound异常时,你的类加载器都找不到它需要操作的类。它与MP4解析器无关,如上所述,无法在4.2.2上工作。
你使用Gradle吗?该类是否在gradle构建文件中捆绑为库?
尝试在app的build.gradle文件中的依赖项{}下添加它:
compile fileTree(dir: 'libs', include: '*.jar')
这将包括最终版本中libs文件夹中的所有jar文件。
答案 2 :(得分:0)
在-keep class com.coremedia.iso.boxes.** { *; }
-keep class com.googlecode.mp4parser.boxes.mp4.ESDescriptorBox { *; }
中添加这2行。这对我有用。
build.gradle
让proguard-rules.pro
像这样使用android {
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
:
{{1}}
答案 3 :(得分:0)
尝试清除mp4parser类中的目标注释代码