我正在尝试修复我的应用程序中的错误,但问题是我无法修复该错误,因为我无法重新创建崩溃但我能够获取日志并且我无法确定问题所在我提到了与UnsupportedOperationException相关的问题,但到目前为止没有成功,任何提示指南都会有所帮助
日志1
Fatal Exception: java.lang.RuntimeException
Unable to create service com.musicplayer.music.audioplayer.PlayerService:
java.lang.RuntimeException: AudioEffect: set/get parameter error
android.app.ActivityThread.handleCreateService (ActivityThread.java:2801)
android.app.ActivityThread.access$1800 (ActivityThread.java:155)
android.app.ActivityThread$H.handleMessage (ActivityThread.java:1400)
android.os.Handler.dispatchMessage (Handler.java:102)
android.os.Looper.loop (Looper.java:135)
android.app.ActivityThread.main (ActivityThread.java:5343)
java.lang.reflect.Method.invoke (Method.java)
java.lang.reflect.Method.invoke (Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run
(ZygoteInit.java:905)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:700)
日志猫 2
Caused by java.lang.RuntimeException
AudioEffect: set/get parameter error
android.media.audiofx.AudioEffect.<init> (AudioEffect.java:407)
android.media.audiofx.Virtualizer.<init> (Virtualizer.java:120)
com.musicplayer.music.audioplayer.equalizermerge.model.EqualizerApi.init
(EqualizerApi.java:23)
com.musicplayer.music.audioplayer.PlayerService.onCreate
(PlayerService.java:400)
android.app.ActivityThread.handleCreateService (ActivityThread.java:3141)
android.app.ActivityThread.access$1800 (ActivityThread.java:178)
android.app.ActivityThread$H.handleMessage (ActivityThread.java:1640)
android.os.Handler.dispatchMessage (Handler.java:111)
android.os.Looper.loop (Looper.java:214)
android.app.ActivityThread.main (ActivityThread.java:6102)
java.lang.reflect.Method.invoke (Method.java)
java.lang.reflect.Method.invoke (Method.java:372)
com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run
(ZygoteInit.java:1028)
com.android.internal.os.ZygoteInit.main (ZygoteInit.java:823)
按照建议,我从io.fabric EqualizerApi 代码中添加了完整的日志猫
我找到了源代码的一个版本(https://android.googlesource.com/platform/frameworks/base/+/5bb8f80/media/java/android/media/audiofx/AudioEffect.java),尽管行号不t 匹配您的堆栈跟踪。
UnsupportedOperationException
在初始化音频效果引擎的本机代码实现时,似乎是由于问题而引发的。在我正在查看的代码中,异常消息显示“未加载效果库”。我猜这是由以下原因之一引起的:
加载路径中缺少所需的本机库。(也许你还没有将它包含在应用程序中......)
可能是库的初始化代码中存在错误。
更新- 更新的堆栈跟踪和错误消息表明在您创建Virtualizer
. 该消息暗示它是由于错误的参数造成的。
查看 AudioEffect 和 Virtualizer 类的代码,似乎Virtualizer
初始值设定项正在尝试从本机 API 检索参数以测试是否支持 Virtualizer“强度”参数。似乎 API 说它甚至不理解应该说明是否支持强度参数的参数(!)
靠近指定参数编号的 Virtualizer 类中的注释是这样说的:
// These constants must be synchronized with those in
// frameworks/base/include/media/EffectVirtualizerApi.h
根据我推断的行为,这似乎不是真的。换句话说,我认为......不知何故......您正在使用与本机API版本不匹配的Java API版本。
或者,这可能是因为这些设备上的 Virtualizer 支持被破坏。
我建议以下解决方法:
尝试在您的init
方法中捕获运行时异常,并将 Virtualizer 功能视为在设备上禁用。
如果您知道有问题的设备是什么,请编写您的init
方法,甚至不要尝试在这些设备上配置 Virtualizer。
根本不支持这些设备。(它们是旧的吗?它们运行的是旧的/维护不善的 Android 版本吗?它们甚至值得支持吗?)
该问题也可能与以下问答之一有关:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句