web-dev-qa-db-ja.com

ADT 22へのアップグレード後にライブラリがAPKに追加されなくなりました

複数のライブラリプロジェクトを参照しているかなり大きなAndroidアプリプロジェクトがあります。 Eclipse ADTプラグインを最新バージョン(v22)にアップグレードするまで、すべてが順調でした。もちろん、SDKもアップグレードしました。 Eclipseでコンパイルエラーは表示されませんが、電話でプロジェクトを実行すると、NoClassDefFoundErrorが発生します。

Java.lang.NoClassDefFoundError: org.acra.ACRA
....

アルカライブラリは、参照されているライブラリプロジェクト(libsフォルダー)の1つに含まれており、パッケージエクスプローラーの「Android Private Libraries」で確認できます。また、コンパイルエラーはありません。このプロジェクトは、ADTをアップグレードしなかった他のすべてのコンピューターで正常に実行されます。

私はすでに、次のものを含むがそれに限定されないものを全部試しました:

  • Android SDKを再インストールします
  • 新しいADTバンドルをダウンロードする
  • すべてのコードを削除し、gitから再度取得します
  • 問題のライブラリをアプリプロジェクトにコピーします
  • このライブラリを使用するコードをコメントアウトします-次のライブラリでも同じエラーが発生します

すべて成功しなかったので、ここで本当に必死になっています。

誰かがその問題を解決する方法についてのヒントを与えてくれたら本当にうれしいです。

235
SimonSays

his adt-dev post からボストンの街を引用

アップグレード時に、新しい「Android Private Libraries」の「Order and Export」が常にチェックされるとは限りません。そして、Android-support-v4.jarはこの「Android Private Libraries」セクションにあります。

これを修正するには、「注文とエクスポート」に進み、「Android Private Libraries」をチェックします。次に、更新/クリーン/再構築します。

ライブラリプロジェクトに対してこの '修正'を行った後、依存するプロジェクトをすぐに閉じて再度開く必要があります。なぜなら、彼らはこの '修正'をすぐに見ることができないからです。

これを試してみると、運が良ければ問題は解決します。

enter image description here

337
CommonsWare

単にAndroidプライベートライブラリをチェックするだけでは不十分でした。また、Android SDK ManagerにAndroid SDK Build-toolsをインストールする必要がありました。

10
Zaixer

私は同様の問題に遭遇し、約3時間を費やしましたが、ここで提案された決定はどれも助けになりませんでした...最後に、問題の原因を見つけました。 Eclipseは、GUIでライブラリの依存関係の変更を行う際に、単に黙って無視しています。

4
RedSoft

私も同じ問題を抱えており、adt22.0.1でした。そして、上記の解決策はどれもうまくいきませんでした。さらに、作業中のプロジェクトに外部ライブラリプロジェクトを追加する場合、作業中のプロジェクトのgenフォルダを常に確認し、外部ライブラリプロジェクトのRが(パッケージ名とともに)存在する場合、外部ライブラリプロジェクトのみがエクスポートされます。そして、私のgenフォルダーには、外部ライブラリーのpackagenameが表示されませんでした。

そこで、project.propertiesファイルをチェックしましたが、Android.library.reference.1=が存在する外部ライブラリリンクはありませんでした。そこで、project->properties->Java Build Path->Projects->Addから追加したものの、そこに外部ライブラリ参照を手動で追加しました。したがって、project.propertiesを手動で編集すると、すべての作業が完了しました。

enter image description here

4
laaptu

同じ問題がありました。これは、Eclipseプロジェクトが原因でした。それを解決するために、Eclipseで新しいプロジェクトを作成し、既存のプロジェクトクラスとリソースをそこにコピーしてから、Eclipseを再度起動して、カスタムインクルードを追加しました。

3
Asaf Pinhassi

私は同様の問題を抱えており、私の答えはCommonsWareのものとは少し異なります。これが私のスクリーンショットです。

enter image description here

ビルドでライブラリを確認した後、再び動作し始めました。

2
Gilson

私も同じ問題を抱えていました

i)gson libをreferecendライブラリとして追加します
ii)Java Build Pathで確認します http://i.stack.imgur.com/Gldhs.png

0
Jeremy Piednoel