不能使用MediaBrowserServiceCompat。

问题描述 投票:0回答:1

我是安卓开发的新手,我想制作一个以客户端-服务器方式运行的音乐播放器。我想创建一个以客户端-服务器方式运行的音乐播放器。目前我正在尝试创建服务器部分。我发现我可以使用 MediaBrowserServiceCompat 正所谓 此处. 但当我试图在我的项目中使用它时,它说 Unresolved reference: MediaBrowserServiceCompat see here虽然我已经将Android Studio设置为自动导入所需的库,但我还是尝试着导入了 android.support.v4.*, android.support.*, androidx.* 显式,希望能行得通,但结果是行不通。所以我去了 GitHub 仓库的 UAMP(通用安卓音乐播放器) 寻求一些帮助。我发现了以下语句 import androidx.media.MediaBrowserServiceCompat本文件. 但我找不到任何一个图书馆的名字。see here

为什么我的宣言说 MediaPlaybackService must extend android.app.service?see here

我应该如何使用呢,谢谢!

编辑:我做了一点研究和修补。我试着把我的Manifest中的服务名和相关的类名都改成了 MyMediaBrowserServiceCompat 神奇的是,它工作了(算是)。那么现在,我的问题是,这是正常行为吗?改变服务名称真的会影响这种情况吗?如果是这样的话,为什么在其他人的机器上用不同的名字(与类名本身不相似的东西)就能工作?其次,现在我的代码说 There's a cycle in the inheritance hierarchy for this typesee here 我在网上搜索了一下,发现 这个. 所以我知道这条信息是什么意思,但我不知道在这种情况下如何解决它。而我的Manifest还是一样的说法。MyMediaBrowserServiceCompat must extend android.app.servicesee here

android kotlin android-service android-mediasession mediabrowserservicecompat
1个回答
1
投票

我猜测这与MediaBrowserService所在的依赖关系有关。如果没有看到你的 build.gradle 很难知道,但MediaBrowserService位于 implementation 'androidx.media:media:1.1.0'. 试着加一下,应该就能找到了。

关于以下信息的说明 There's a cycle in the inheritance hierarchy for this type父类:那是因为你基本上是把父类和子类都引用到同一个类上,这样做是行不通的,因为它会请求父类,然后把自己找回来。它 "能用 "的原因是你现在只引用实际的文件,这些文件可以从类的 MyMediaBrowserService 存在。你需要更新你的服务,以真正地继承 MediaBrowserServiceCompat 来让它工作,当你有了它的依赖性时,它应该可以工作。

© www.soinside.com 2019 - 2024. All rights reserved.