相关疑难解决方法(0)

Proguard打破资产或原始的音频文件

我有一个活动,使用MediaPlayer发出哔哔声,工作正常,即使在生产版本中也能正常工作.随着最新发布,它现在突然崩溃了

Caused by: android.content.res.Resources$NotFoundException: File res/raw/beep.ogg from drawable resource ID #0x7f060000
at android.content.res.Resources.openRawResourceFd(Resources.java:994)
at android.media.MediaPlayer.create(MediaPlayer.java:855)
at com.digikey.mobile.activity.CaptureActivity.onCreate(SourceFile:135)
at android.app.Activity.performCreate(Activity.java:5206)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1094)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064)
... 11 more
Caused by: java.io.FileNotFoundException: This file can not be opened as a file descriptor; it is probably compressed
at android.content.res.AssetManager.openNonAssetFdNative(Native Method)
at android.content.res.AssetManager.openNonAssetFd(AssetManager.java:428)
at android.content.res.Resources.openRawResourceFd(Resources.java:991)
... 16 more
Run Code Online (Sandbox Code Playgroud)

我尝试了许多不同的加载和播放声音的方法,包括将它存储在资源中而不是原始的res/raw中,当我在未经过编程的应用程序中使用它们时它们都能正常工作但是它们都在发布版本中失败了proguarded/zipaligned并签名.

我的proguard文件相当大,它确实包含了经常建议的修复程序

-keepclassmembers class **.R$* {public static <fields>;}
-keep class **.R$*
Run Code Online (Sandbox Code Playgroud)

以前有人有任何想法或遇到过这样的事吗?

更新:我也试过mp3文件,它有同样的问题.

更新2:一个有趣的事情是,这条消息似乎需要花费很长时间(接近1秒).好像它正在搜索或处理某些文件或其他东西..但文件非常小,所以它很奇怪.

android assets proguard android-mediaplayer android-maven-plugin

6
推荐指数
2
解决办法
5639
查看次数