3

我是android开发的新手。我想创建一个以客户端-服务器方式运行的音乐播放器。我现在正在尝试创建服务器部分。我发现我可以使用这里MediaBrowserServiceCompat官方文档中的说明来实现这一点。但是当我尝试在我的项目中使用它时,它说 虽然我已将 Android Studio 设置为自动导入所需的库,但我尝试显式地导入, ,希望它可以工作,但事实证明它没有。因此,我前往UAMP(通用 Android 音乐播放器)的 GitHub 存储库寻求帮助。我在这个文件中找到了语句。但我找不到任何这样命名的库Unresolved reference: MediaBrowserServiceCompat 看这里android.support.v4.*android.support.*androidx.*import androidx.media.MediaBrowserServiceCompat看这里

为什么我的清单说MediaPlaybackService must extend android.app.service看这里

我应该如何使用它?谢谢!

编辑:我做了一些研究和修补。我尝试将 Manifest 中的服务名称和关联的类名称更改为MyMediaBrowserServiceCompat神奇地起作用(有点)。所以现在,我的问题是,这是正常行为吗?更改服务名称真的会影响这种情况吗?如果是这样,它究竟如何在其他人的机器上使用不同的名称(与类名本身不相似)?其次,现在我的代码说There's a cycle in the inheritance hierarchy for this type看这里我在网上搜索并找到了这个。所以我知道那条消息是什么意思,但我不知道在这种情况下如何解决它。我的清单仍然说同样的:MyMediaBrowserServiceCompat must extend android.app.service看这里

4

2 回答 2

5

在 Android Developer 中,他们没有在音频应用概述文章中明确说明如何实现MediaBrowserServiceCompatMediaBrowserCompat(如果您正在关注本文)。但是您可以使用下面的代码实现或在本文中更新此支持库的最新版本。

dependencies {
    implementation "androidx.media:media:1.3.1"
}
于 2021-05-16T15:50:08.197 回答
0

我的猜测是,这与 MediaBrowserService 所在的依赖项有关。如果没有看到您的依赖项部分,build.gradle很难知道,但 MediaBrowserService 位于implementation 'androidx.media:media:1.1.0'. 尝试添加它,您应该能够找到它。

关于消息的注释There's a cycle in the inheritance hierarchy for this type:那是因为您本质上指的是与父母和孩子相同的班级,这不起作用,因为它会要求父母并自己回来。它“工作”的原因是因为您现在只引用自该类MyMediaBrowserService存在以来可以找到的实际文件。您需要更新您的服务以实际继承MediaBrowserServiceCompat以使其工作,并且当您拥有它的依赖项时应该可以工作。

于 2020-06-10T08:27:04.063 回答