Android Private Libraryから必要なクラスがなくなってしまった…その原因は?
こんにちわ。pencoです。
今日は先日Eclipse ADTを22にアップデートした際に困ったことについて書いていきたいと思います。
事の発端としてはNavigationDrawerを使ったメニューを作成したいなと思い、SDK ManagerでAndroid Support Library(Rev.18)をインストールしてADTを22にアップデートしたことでした。
クラスがなくなった?
ADTを22にアップデートしたことでプロジェクトの中にAndroid Private Libraryというフォルダが出来るようになりました。
これはlibsフォルダに入っているjarファイルを参照しているらしく、jarファイルに含まれるクラスなどが見れるのですが、どうもこの中に必要としてるDrawerLayoutというクラスがない。
libsの中のandroid-support-v4.jarを展開してみたが、やはりない。
どうやらjarファイルが古いようだ。
とりあえず、libsの中のandroid-support-v4.jarを新しいものに入れ替えてみる。
しかし、プロジェクトをクリーンしてビルドし直してもAndroid Private Libraryの中身は変わらない。
困ったなぁと思いながらEclipseを再起動してみる。
やった!今度は反映されました!!
これで過去に作ったプロジェクトは大丈夫そうですね。
ところがまだ問題がありました。
jarファイルが新しくならない
新規に作成したプロジェクトのjarファイルが古いままだ!!!
android-sdk内のandroid-support-v4.jarは新しくなっているのですが、新規プロジェクトを作る際にそれが反映されてない。なぜだ。。。
色々いじくり倒してもなおらず、心当たりはひとつ。
もしかしてEclipseからSDK Manager実行してないからかな…
実は過去にSDKを入れ直したことがありまして、その際にSDKの保存先をデフォルトのC:\Program Filesにしたままだったのですが、これだとEclipseからSDK Managerを実行できない弊害がありました。
ファイルへの書き込み権限がないのが原因なので、SDKを移動すればよかったのですが、かなり時間がかかりそうなので、とりあえず直接SDK Manager.exeを管理者権限で実行することで誤魔化していました。
これがいけなかった。
android-sdkへのアクセス権限を変更して、EclipseからSDK Managerを実行すると、EclipseからはSupport Libraryがインストールされてないことになっていました。
改めてインストールしなおすと、新規プロジェクトのjarファイルも新しいものが反映されるようになりました。
やっぱり横着しちゃいけませんね。
反省反省。
コメントをどうぞ