MAUI应用中Android MediaPlayer仅在Release模式物理设备崩溃
MAUI Android MediaPlayer Release物理设备崩溃问题解决
问题场景
封装的Android平台MediaPlayer类在以下环境可正常运行:
- Debug模式:物理设备、模拟器
- Release模式:模拟器
但物理设备的Release模式下启动即崩溃,通过adb logcat捕获到包含java.lang.IllegalStateException的异常堆栈。
初始封装代码
public class AndroidAudioPlayer { private readonly MediaPlayer player; private readonly MemoryStream stream; internal AndroidAudioPlayer(Stream audioStream) { this.player = new MediaPlayer(); this.stream = new MemoryStream(); audioStream.CopyToAsync(this.stream); var mediaDataSource = new StreamMediaDataSource(this.stream); this.player.SetDataSource(mediaDataSource); this.player.Looping = true; this.player.Prepare(); } }
排查与解决步骤
- 第一阶段优化:将代码改为全异步实现,并在项目文件中添加配置:
修改后,通过Visual Studio直接部署到物理设备Release模式、<AndroidEnableMarshalMethods>false</AndroidEnableMarshalMethods>dotnet publish生成的APK安装运行均恢复正常,但Google Play Store渠道部署的版本仍崩溃。 - 最终解决:重启手机并清理Google Play Store缓存,重新从Play Store安装后,应用恢复正常。
内容的提问来源于stack exchange,提问作者Julien Debache
相关产品推荐
相关产品推荐

