2012-03-22 11 views
7

2つのライブラリプロジェクトを参照するプロジェクトがあります。 ADTとSDKツールをversion 17にアップグレードすると、ライブラリプロジェクトの1つで定義されているクラスへの参照にヒットするとすぐにクラッシュします。SDKツールとADTを17にアップデートし、VerifyErrorsを取得しました

Unable to resolve superclass of Lcom/my/package/name/MyActivity; (118) 
Link of class 'Lcom/my/package/name/MyActivity;' failed 
VFY: unable to find class referenced in signature (Lcom/my/package/name/MyActivity;) 

と:次のようなエラー

FATAL EXCEPTION: main 
    java.lang.VerifyError: my/package/name/util/SomeClass 
    at my.package.name.App.onCreate(App.java:120) 
    at android.app.Instrumentation.callApplicationOnCreate(Instrumentation.java:969) 
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:3925) 
    at android.app.ActivityThread.access$1300(ActivityThread.java:122) 
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1184) 
    at android.os.Handler.dispatchMessage(Handler.java:99) 
    at android.os.Looper.loop(Looper.java:137) 
    at android.app.ActivityThread.main(ActivityThread.java:4340) 
    at java.lang.reflect.Method.invokeNative(Native Method) 
    at java.lang.reflect.Method.invoke(Method.java:511) 
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
    at dalvik.system.NativeStart.main(Native Method) 

(私のパッケージとクラスは、そのように命名されないが、ちょうどここに投稿するためにそれらを修正)

何が起こっているか上の任意のアイデアここに?ビルド・エラーはなく、プロジェクトが正しくライブラリ・プロジェクトを参照しているように見えます。

+0

プロジェクトを修復して再構築しましたか? –

+0

私はリフレッシュした、私はきれいにし、再建、閉鎖、オープン、泣いて、他のいくつかのもの。 ;)クリーニングは何も変えていないようでしたが、私は何かを見つけました(下記参照)。しかし、ありがとう! – cottonBallPaws

答えて

12

私はまったく同じ問題を抱えていました。この投稿を見つける:私にいくつかの欲求不満を保存します。原則として

+0

ありがとうございました!私がやらなければならなかったのは、 "lib"フォルダの名前を "libs"に変更することでした。 – twig

+0

また、EclipseのOrderとExport機能を使うこともできます – Bendlas

4

これは恐ろしいことですが、私はちょうどそれが働くまでさまざまなものを試しました。この中のどこかで、それが解決されました。 私のライブラリプロジェクトには、いくつかのjarが "lib"フォルダに追加され、ビルドパスに添付されています。

私はこの変更ログノートを読んでいます:http://tools.android.com/recent/dealingwithdependenciesinandroidprojectsライブラリと依存関係の変更について。私はこれに気づいた:

プロジェクトには、ライブラリプロジェクトとjarファイルの依存関係だけでなく、ソースフォルダもあります。 project.propertiesで依存関係としてライブラリプロジェクトを追加するよりも必要ありません他の設定では、プロジェクトのクラスパスが自動的に取り込まれます。何らかの理由で

The content of the project’s libs/*.jar 
The output of the Library Projects. 
The Library Projects’ libs/*.jar 

、私のライブラリプロジェクトのフォルダは、「LIB」ではない「LIBSに選ばれました"私はそれを2年近く使っていますが、何も問題はありませんでしたが、先に進んでlibsに変更しました。その後、プロジェクトをリフレッシュして、「ライブラリ」フラグをオフにしてから、再度オンにしてその変更を確認しました。

また、新しいツールでは、ライブラリプロジェクトを参照しているプロジェクトにライブラリプロジェクトのjarファイルを含めるように言及しています。これまで、ライブラリプロジェクトのjarファイルを参照プロジェクトに手動で追加しました。そこで参照プロジェクトに入り、構築パスからjarファイルを削除しました。私はプロジェクトのプロパティに入ると、ライブラリプロジェクトを削除し、それを再追加しました。

最後に、jarファイルがライブラリプロジェクトのフォルダにありましたが、使用されていませんでした。それはフォルダの中だけでした。私はそのファイルを削除しました。

そこのどこかで、もう一度作業を開始しました。本当の修正が "lib"を "libs"に変えていたのではないかと心配していました。がんばろう!

1

@kargi

、私は解決策herehereは非常に悪い習慣だと思います。 Mavenはこの奇妙なlibフォルダのビジネスをずっと前に解決しましたが、MavenはAndroidの構築にはあまり効率的ではありませんので、私はhereと記述しています。

関連する問題