2017-01-20 7 views
0

Androidアプリは「com.google.gson.Gson」を使用するライブラリ(aarモジュール)を使用しています。ライブラリは、そのbuild.gradleに次のようにあります。Androidアプリプロジェクトにライブラリで使用するパッケージを含める必要があるのはなぜですか?

compile 'com.google.code.gson:gson:2.6.2' 

アプリは罰金構築し、それが起動時に次のエラーを生成します。

Failed resolution of: Lcom/google/gson/Gson; 

それを解決する唯一の方法は、同じコンパイルを追加していますアプリのbuild.gradleへのライン:

compile 'com.google.code.gson:gson:2.6.2' 

誰もがこれにいくつかの光を当てることができますか?

ライブラリは、「androidLibraryリリース」と呼ばれるアプリの下にフォルダを作成しthe standard procedureを加えた

[編集]。次の行は、アプリのbuild.gradleに追加されました:

compile project(':androidLibrary-release') 
+0

ライブラリを指定できますか? – mayosk

+0

「Androidアプリはライブラリを使用しています」 - 方法は?ライブラリはMavenスタイルのレポに公開されていますか?アプリはそこから参照していますか?ライブラリは 'compile project( ':modulename')'によって使用されていますか?あなたは別のことをしていますか? – CommonsWare

+0

はい、ライブラリはコンパイルプロジェクト( ':modulename')によって使用されています。 @mayoskライブラリの使い方を追加して投稿を編集します。 – Hong

答えて

1

図書館は、その依存関係が含まれていません。開発者は、必要に応じてそれらを実装するアプリモジュールに組み込むことができます。ただし、このライブラリがMavenリポジトリから提供されている場合は、ライブラリが使用する依存関係に関する情報を含めることができ、プロジェクトのビルド時にフェッチされます。

+0

お返事ありがとうございます。アプリはcom.google.code.gson:gsonを直接使用しません。ライブラリの一部のクラスだけがそれを使用します。 – Hong

+0

@それでも正しく動作させるためには、依然として依存関係を追加する必要があります。 –

+0

これはライブラリに他の多くの依存関係があるため、少し奇妙です。アプリは、アプリに含まれていない依存関係を使用してライブラリのメソッドを使用する場合にのみクラッシュします。つまり、アプリケーションはクラッシュに依存して、どの追加の依存関係を追加するべきかを判断します。 – Hong

関連する問題