スポンサーリンク
EclipseでAndroid開発をすべくプロジェクトを作成し、Gitで管理するためにGitレポジトリにコミットする設定をしたところ、ワーキングディレクトリが移動した結果、ライブラリへのパスが変わり、ビルド時にエラーが発生するようになって困ったので、その原因と対策についてメモ。
スポンサーリンク
症状
次のエラーが出ます。
Archive for required library: '.../libs/android-support-v4.jar' in project '...'
原因
つまるところ、Gitのワーキングディレクトリにソースファイルと一緒にlibディレクトリも移動してしまった関係で、.jarファイルへのパスを更新しなければならないのに、その更新が行われなかったのが原因というわけです。
対策?
プロジェクトを右クリックして、プロパティを表示し、「Java Build Path」の「Libraries」タブを開きます。そして、「Android Dependencies」にある「android-support-v4.jar」が「(missing)」となっていることが確認できました。つまり、.jarが見つからないというわけです。しかし、どうにもパスだけを再設定する手段が見当たらないのです。そこで、いろいろ調べてみました。
根本的な原因
「java - Compiler error "archive for required library could not be read" - Spring Tool Suite - Stack Overflow」によると、Eclipseはローカルレポジトリへのパスをキャッシュすることがあるらしいのです。つまり、古いパスの情報がキャッシュされており、新しいパスの情報に更新されていない可能性があるというのです。
対策
このキャッシュは、Eclipseを再起動することでフラッシュ(消去)されるということもわかったので、Eclipseを再起動してみました。すると、ライブラリに格納されていたパスの情報が更新され、エラーが無くなりました。こんな簡単なことだったとは。
感想
「Eclipseのキャッシュには要注意」ということを学びました。
おまけメモ
classpathに指定されていた「com.android.ide.eclipse.adt.LIBRARIES」の正体がなんなのか、わざわざADTのソースまでgit cloneして探してみましたが、どういうものなのか、分からずじまいでした。というか、この「Android Dependencies」のようなものを再度自分で追加しようと思ったらどうすればいいのかもいまいちよく分かりませんでした。
スポンサーリンク
スポンサーリンク