3

ここ数日、Maven でビルドされた Android プロジェクトに Chromecast を追加するのに苦労していました。

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

だからこれは私がそれを解決した方法です:

まず、android-support-v7-appcompatライブラリ用の POM ファイル (依存関係なし) を作成し、ライブラリをリポジトリにアップロードしました。

次に、android-support-v7-mediarouterライブラリの POM ファイルを作成し、依存関係 (apklib と jar の両方) としてandroid-support-v7-appcompatを追加し、このライブラリもリポジトリにアップロードしました。

私の場合は、CastCompanionLibraryを使用することにしました。このライブラリには 2 つの依存関係があります。android-support-v7-mediaroutergoogle-play-services。したがって、次のステップは、google-play-servicesの POM を作成し、ライブラリもリポジトリにアップロードすることでした。次に、2 つの依存関係 (apklibs と jar ファイルの両方) を宣言するCastCompanionLibraryに POM を追加しました。

最後に、私のプロジェクトの POM で、CastCompanionLibraryを依存関係 (apklib のみ) として追加しました。CastCompanionLibrary を使用しない場合は、android-support-v7-mediaroutergoogle-play-servicesを依存関係としてプロジェクトの POM に追加するだけです。

また、依存関係を追加するときは、既存の重複を必ず除外してください。たとえば、私のプロジェクトで宣言された残りの依存関係の一部は、古いバージョンのandroid-support-v7-appcompatに依存していたため、それらすべてから除外する必要がありました。

これが役立つことを願っています!

于 2014-03-23T23:04:16.857 に答える