gpt4 book ai didi

java - Proguard 使我的 RemoteController compat 实现在 API<19 设备上崩溃

转载 作者:行者123 更新时间:2023-11-30 02:47:20 25 4
gpt4 key购买 nike

我正在尝试让 API 19 引入的 RemoteController API 与 API 14+ 一起使用,因为该 api 已经在那里可用但隐藏了。到目前为止我一切正常,唯一剩下的问题是,proguard 似乎破坏了我在 API<19 设备上的构建,每当我在 MicroService.java 中初始化我的 RemoteMetadataProvider 时都会导致 AbstractMethodError:

java.lang.AbstractMethodError: abstract method not implemented
at android.media.IRemoteControlDisplay$Stub.setCurrentClientId(IRemoteControlDisplay.java)
at android.media.IRemoteControlDisplay$Stub.onTransact(IRemoteControlDisplay.java:65)
at android.os.Binder.execTransact(Binder.java:367)
at dalvik.system.NativeStart.run(Native Method)

微服务.java:https://github.com/tomahawk-player/tomahawk-android/blob/master/src/org/tomahawk/tomahawk_android/services/MicroService.java

我的实现基于 DrBreen 的指南/库:http://forum.xda-developers.com/showthread.php?t=2432267

我正在使用 WisdomWolf 的统一库:https://github.com/WisdomWolf/UnifiedRemoteMedadataProvider

我的混淆器配置文件:https://github.com/tomahawk-player/tomahawk-android/blob/master/proguard-android.txt

当我完全禁用 proguard 时,一切正常而不会崩溃,所以我猜测 proguard 以某种方式剥离了所需的类/接口(interface)。关于如何正确配置混淆器的任何想法?

到目前为止我的尝试:

  • 将“-keep class org.electricwisdom.**”和“-keep class com.woodblockwithoutco.* *”添加到我的 proguard 文件中,因为这两个是 RemoteMetadataProvider 库的包名称,该库实现了 API 的 RemoteController API 14-18岁
  • 将“-keep * implements android.media.IRemoteControlDisplay”和/或“-keep * extends android.media.IRemoteControlDisplay$Stub”添加到我的混淆器文件
  • 添加“-keep class android.media.IRemoteControlDisplay$**”

最佳答案

这是解决我的问题的方法:将“-keep class org.electricwisdom.**”和“-keep interface org.electricwisdom.* *”添加到我的混淆配置文件中。

关于java - Proguard 使我的 RemoteController compat 实现在 API<19 设备上崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24805568/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com