android代码混淆后MediaPlayer IOException: java.io.FileNotFoundException: /system/media/audio/ui/Effect_Tick.ogg: open failed: ENOENT (No such file or directory)
时间: 2023-08-08 17:06:46 浏览: 242
支持 [IJKPlayer](https://github.com/Bilibili/ijkplayer)、 Media3(EX
在Android代码混淆后,你可能会遇到`IOException: java.io.FileNotFoundException`异常,其中指定的文件路径无法找到。这可能是由于混淆过程中移除了与MediaPlayer相关的资源文件或文件路径被混淆导致的。
为了解决此问题,你可以采取以下步骤:
1. 在你的proguard-rules.pro文件中,添加以下规则来保留与资源文件相关的路径:
```
-keepclassmembers class **.R$* {
public static <fields>;
}
```
这将防止混淆过程中移除与资源文件路径相关的类和字段。
2. 如果你使用了MediaPlayer播放的资源文件,确保在混淆过程中不要移除这些资源文件:
```
-keepresources string/media_*
```
这将防止混淆过程中移除与MediaPlayer播放的资源文件相关的字符串。
3. 如果你使用了自定义的MediaPlayer子类,确保在混淆过程中不要移除这些子类:
```
-keep class com.yourpackage.YourMediaPlayerSubclass {
public *;
}
```
这将防止混淆过程中移除与自定义MediaPlayer子类相关的类和方法。
这些步骤可以帮助你避免由于代码混淆导致的文件路径错误。请根据你的实际情况进行适当的修改和调整。
阅读全文