質問: ### 前提・実現したいこと 初めまして、Android StudioによるJavaの勉強を初めて一ヶ月ちょっとの若輩者です。 (その前にC/C++/Visual Studioのプログラマーを10年程やっていたので、Javaの書式やアルゴリズムやクラス等は理解しています) 今回、Android Studio(Java)の既存プロジェクトにOneDriveSDKが組み込めまなくて困っています。 自作したプロジェクトに関しては単体でのローカルファイルの読込/書込の動作確認は取れており、 ローカルで作成したファイルをOneDriveにアップロード/ダウンロード出来るようにして 他の端末の当アプリから参照出来るようにしたいのです。 ### 発生している問題・エラーメッセージ ``` エラー :(21, 1) エラー: パッケージcom.microsoft.onedrivesdk.pickerは存在しません エラー :(22, 1) エラー: パッケージcom.microsoft.onedrivesdk.saverは存在しません 上記のエラーが発生してしまい、ビルドに失敗します。 ``` ### 該当のソースコード ``` App.java のソース(抜粋)は以下の様になっています。 import com.microsoft.onedrivesdk.picker.*; // これが参照出来ていないらしい import com.microsoft.onedrivesdk.saver.*; // これが参照出来ていないらしい private IPicker mPicker; // 'class' or 'interface' expected(宣言部にカーソルを合わせると表示される) private ISaver mSaver; // 'class' or 'interface' expected(宣言部にカーソルを合わせると表示される) ``` ### 試したこと https://msdn.microsoft.com/ja-jp/library/dn833235.aspx 上記HPを参考にして既存の自作プロジェクトにOneDriveSDKモジュールを追加してあります。 SDKに付随してくるテスト用のピッカーとセーバーは動作を確認出来たので、プロジェクトから外してあります。 その為プロジェクトの構成は以下の様になっています StaffCalender (自作したプロジェクト名です) ├app (自作したプロジェクトのモジュールです) ├OneDriveSDK (追加したOneDriveSDKのモジュールです) │├build │└src │ └com.microsoft.onedrivesdk │ ├common │ ├picker │ └saver ├build └gradle StaffCalenderのappのbuild.gradleの記述(抜粋)は以下の様になっています dependencies { compile fileTree(dir: 'libs', include: ['*.jar']) androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { exclude group: 'com.android.support', module: 'support-annotations' }) compile 'com.android.support:appcompat-v7:25.3.1' compile 'com.android.support.constraint:constraint-layout:1.0.2' testCompile 'junit:junit:4.12' --------------------------------------------------------------------------------↓ここから compile ('com.microsoft.identity.client:msal:0.1.+') { exclude group: 'com.android.support', module: 'appcompat-v7' } compile 'com.android.volley:volley:1.0.0' --------------------------------------------------------------------------------↑ここまでを追記してある } サンプルに手がかりがないかとPickerSampleとSaverSampleのbuild.gradleの記述を見たのですが、 以下(抜粋)の様になっているので、自分のプロジェクトと違いすぎるのが気になってはいます。 dependencies { compile project(':OneDriveSDK') } StaffCalenderのsetting.gradle内の記述は以下の様になっています include ':app', ':OneDriveSDK' ### 補足情報(言語/FW/ツール等のバージョンなど) OS:Windows10(64bit) 環境:Android Studio 2.3.3 APIのバージョン:24 Cでいう所の#includeの宣言はしたが参照すべきライブラリの指定がリンカに記述されていない状態のような感じなのだと思っています。 思いつく範囲でググったりもしたのですが。他の方の作ったモジュールを組み込むのは今回が初めてなので、 どの様にしたら良いのか勝手が分かりません。 どこをどの様に修正すればピッカーとセーバーのモジュールを参照出来るのでしょうか? 「このHP見てみ」とかでも構いませんので、どなたかご教授頂けます様お願い致します。
回答: Gradleの依存性の設定が不十分だと考えられます。 ・FileからProject Structureをクリックする。 ・Depedenciesタブをクリックする。 ・左下にある+ボタンをクリックする。 ・3のmodule dependencesをクリックする。 ・OneDriveSDKモジュールをクリックする。