在过去的几天里,我一直在苦苦挣扎,在我的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的引用。
所以,我的问题是;我该如何解决?任何帮助将不胜感激!
答案 0 :(得分:1)
我不知道如何在maven中设置东西但要注意的一点是android-support-v7-mediarouter库依赖于appcompat支持库并在你自己的项目中使用它们其中应将其设置为库项目(即您只需将这些库的jar添加到您自己的项目中)。我不确定这些信息是否对您的maven设置有用,但我想如果它确实如此。
答案 1 :(得分:1)
所以这就是我解决它的方法:
首先,我为 android-support-v7-appcompat 库创建了一个POM文件(没有任何依赖项),并将库上传到我的存储库。
然后,我为 android-support-v7-mediarouter 库创建了一个POM文件,添加了 android-support-v7-appcompat 作为依赖项(两者都是apklib)和jar)并将此库上传到我的存储库。
就我而言,我选择使用CastCompanionLibrary。这个库有两个依赖项; android-support-v7-mediarouter 和 google-play-services 。因此,下一步是为 google-play-services 创建一个POM,并将库上传到我的存储库。然后,我在 CastCompanionLibrary 中添加了一个POM,在那里我声明了它的两个依赖项(包括apklib和jar文件)。
最后,在我的项目的POM中,我添加了 CastCompanionLibrary 作为依赖项(只是apklib)和...瞧!如果您选择不使用CastCompanionLibrary,那么您只需将 android-support-v7-mediarouter 和 google-play-services 作为依赖项添加到项目的POM中。
此外,请确保在添加依赖项时排除任何现有重复项。例如,我项目中其他一些声明的依赖项依赖于旧版本的 android-support-v7-appcompat ,我必须从所有版本中排除这些依赖项。
我希望这有帮助!