3

过去几天我一直在努力在我的 Android 项目中添加 Chromecast,这是用 Maven 构建的。

就像它是一个 ANT 项目一样,我将 android-support-v7-mediarouter 添加为一个库。我通过在我的 pom.xml 文件中添加以下依赖项来做到这一点:

<dependency>
    <groupId>android.support</groupId>
    <artifactId>compatibility-v7-mediarouter</artifactId>
    <version>18</version>
    <type>apklib</type>
</dependency>

我尝试构建项目时遇到的错误是:

No resource found that matches the given name 'Widget.AppCompat.ActionButton'

我认为这很明显,因为 android-support-v7-mediarouter 库没有对 android-support-v7-appcompat 的引用。

所以,我的问题是;我该如何解决?任何帮助将不胜感激!

4

2 回答 2

1

我不知道如何在 maven 中进行设置,但要记住的一件事是 android-support-v7-mediarouter 库依赖于 appcompat 支持库并在您自己的项目中使用它们,它们都应该设置为库项目(即,您不能只将这些库的 jar 添加到您自己的项目中)。我不确定这些信息对您的 Maven 设置是否有用,但只是想我会提到以防万一。

于 2013-10-25T14:50:05.670 回答
1

所以这就是我解决它的方法:

首先,我为android-support-v7-appcompat库创建了一个 POM 文件(没有任何依赖项)并将该库上传到我的存储库。

然后,我为android-support-v7-mediarouter库创建了一个 POM 文件,添加了android-support-v7-appcompat作为依赖项(包括 apklib 和 jar),并将该库也上传到了我的存储库。

就我而言,我选择使用CastCompanionLibrary。这个库有两个依赖项;android-support-v7-mediaroutergoogle-play-services。因此,下一步是为google-play-services创建一个 POM,并将库也上传到我的存储库。然后,我向CastCompanionLibrary添加了一个 POM,我在其中声明了它的两个依赖项(apklibs 和 jar 文件)。

最后,在我项目的 POM 中,我将CastCompanionLibrary添加为依赖项(只是 apklib),然后......瞧!如果您选择不使用 CastCompanionLibrary,那么您只需将android-support-v7-mediaroutergoogle-play-services作为依赖项添加到项目的 POM 中即可。

此外,请确保在添加依赖项时排除任何现有的重复项。例如,我的项目中声明的其余一些依赖项依赖于旧版本的android-support-v7-appcompat,我必须从所有这些依赖项中排除。

我希望这有帮助!

于 2014-03-23T23:04:16.857 回答