2012-02-12 13 views
10

Android用Roboguiceで自分のやり方を開始します。 this単純なコンテキストインジェクションを実装しようとしましたが、この例外が発生しました。 私はそれを見つけ、かなりの数の記事に出くわしましたが、私の問題は解決しませんでした。 これは何か、以下の例外ですか?事前にAndroid Roboguice例外

おかげ

02-05 00:14:54.330: I/dalvikvm(777): Failed resolving Lcom/google/inject/Provider; interface 627 'Ljavax/inject/Provider;' 
02-05 00:14:54.330: W/dalvikvm(777): Link of class 'Lcom/google/inject/Provider;' failed 
02-05 00:14:54.340: I/dalvikvm(777): Failed resolving Lcom/google/inject/Provider; interface 627 'Ljavax/inject/Provider;' 
02-05 00:14:54.340: W/dalvikvm(777): Link of class 'Lcom/google/inject/Provider;' failed 
02-05 00:14:54.361: I/dalvikvm(777): Failed resolving Lcom/google/inject/Provider; interface 627 'Ljavax/inject/Provider;' 
02-05 00:14:54.361: W/dalvikvm(777): Link of class 'Lcom/google/inject/Provider;' failed 
02-05 00:14:54.361: W/dalvikvm(777): VFY: unable to find class referenced in signature (Lcom/google/inject/Provider;) 
02-05 00:14:54.370: I/dalvikvm(777): Failed resolving Lcom/google/inject/Provider; interface 627 'Ljavax/inject/Provider;' 
02-05 00:14:54.370: W/dalvikvm(777): Link of class 'Lcom/google/inject/Provider;' failed 
02-05 00:14:54.370: W/dalvikvm(777): VFY: unable to find class referenced in signature (Lcom/google/inject/Provider;) 
02-05 00:14:54.380: I/dalvikvm(777): Failed resolving Lcom/google/inject/Provider; interface 627 'Ljavax/inject/Provider;' 
02-05 00:14:54.380: W/dalvikvm(777): Link of class 'Lcom/google/inject/Provider;' failed 
02-05 00:14:54.401: I/dalvikvm(777): Failed resolving Lcom/google/inject/Provider; interface 627 'Ljavax/inject/Provider;' 
02-05 00:14:54.401: W/dalvikvm(777): Link of class 'Lcom/google/inject/Provider;' failed 
02-05 00:14:54.401: W/dalvikvm(777): VFY: unable to find class referenced in signature (Lcom/google/inject/Provider;) 
02-05 00:14:54.430: I/dalvikvm(777): Failed resolving Lcom/google/inject/Provider; interface 627 'Ljavax/inject/Provider;' 
02-05 00:14:54.430: W/dalvikvm(777): Link of class 'Lcom/google/inject/Provider;' failed 
02-05 00:14:54.430: I/dalvikvm(777): Failed resolving Lroboguice/application/RoboApplication$1; interface 82 'Lcom/google/inject/Provider;' 
02-05 00:14:54.430: W/dalvikvm(777): Link of class 'Lroboguice/application/RoboApplication$1;' failed 
02-05 00:14:54.430: E/dalvikvm(777): Could not find class 'roboguice.application.RoboApplication$1', referenced from method roboguice.application.RoboApplication.initInstanceMembers 
02-05 00:14:54.430: W/dalvikvm(777): VFY: unable to resolve new-instance 655 (Lroboguice/application/RoboApplication$1;) in Lroboguice/application/RoboApplication; 
02-05 00:14:54.430: D/dalvikvm(777): VFY: replacing opcode 0x22 at 0x0007 
02-05 00:14:54.451: D/dalvikvm(777): VFY: dead code 0x0009-006b in Lroboguice/application/RoboApplication;.initInstanceMembers()V 
02-05 00:14:54.481: I/dalvikvm(777): Could not find method com.google.inject.internal.Maps.newHashMap, referenced from method roboguice.inject.ContextScope.getScopedObjectMap 
02-05 00:14:54.481: W/dalvikvm(777): VFY: unable to resolve static method 1165: Lcom/google/inject/internal/Maps;.newHashMap()Ljava/util/HashMap; 
02-05 00:14:54.491: D/dalvikvm(777): VFY: replacing opcode 0x71 at 0x0018 
02-05 00:14:54.491: D/dalvikvm(777): VFY: dead code 0x001b-0020 in Lroboguice/inject/ContextScope;.getScopedObjectMap (Lcom/google/inject/Key;)Ljava/util/Map; 
02-05 00:14:54.500: I/dalvikvm(777): Failed resolving Lcom/google/inject/Provider; interface 627 'Ljavax/inject/Provider;' 
02-05 00:14:54.500: W/dalvikvm(777): Link of class 'Lcom/google/inject/Provider;' failed 
02-05 00:14:54.500: W/dalvikvm(777): VFY: unable to find class referenced in signature (Lcom/google/inject/Provider;) 
02-05 00:14:54.500: I/dalvikvm(777): Failed resolving Lcom/google/inject/Provider; interface 627 'Ljavax/inject/Provider;' 
02-05 00:14:54.500: W/dalvikvm(777): Link of class 'Lcom/google/inject/Provider;' failed 
02-05 00:14:54.500: I/dalvikvm(777): Failed resolving Lroboguice/inject/ContextScope$1; interface 82 'Lcom/google/inject/Provider;' 
02-05 00:14:54.500: W/dalvikvm(777): Link of class 'Lroboguice/inject/ContextScope$1;' failed 
02-05 00:14:54.510: E/dalvikvm(777): Could not find class 'roboguice.inject.ContextScope$1', referenced from method roboguice.inject.ContextScope.scope 
02-05 00:14:54.510: W/dalvikvm(777): VFY: unable to resolve new-instance 672 (Lroboguice/inject/ContextScope$1;) in Lroboguice/inject/ContextScope; 
02-05 00:14:54.510: D/dalvikvm(777): VFY: replacing opcode 0x22 at 0x0000 
02-05 00:14:54.510: D/dalvikvm(777): VFY: dead code 0x0002-0005 in Lroboguice/inject/ContextScope;.scope (Lcom/google/inject/Key;Lcom/google/inject/Provider;)Lcom/google/inject/Provider; 
02-05 00:14:54.571: E/dalvikvm(777): Could not find class 'javax.inject.Provider', referenced from method com.google.inject.internal.MoreTypes.canonicalizeForKey 
02-05 00:14:54.571: W/dalvikvm(777): VFY: unable to resolve const-class 627 (Ljavax/inject/Provider;) in Lcom/google/inject/internal/MoreTypes; 
02-05 00:14:54.571: D/dalvikvm(777): VFY: replacing opcode 0x1c at 0x0021 
02-05 00:14:54.580: D/dalvikvm(777): VFY: dead code 0x0023-0045 in Lcom/google/inject/internal/MoreTypes;.canonicalizeForKey (Lcom/google/inject/TypeLiteral;)Lcom/google/inject/TypeLiteral; 
02-05 00:14:54.611: D/AndroidRuntime(777): Shutting down VM 
02-05 00:14:54.611: W/dalvikvm(777): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 
02-05 00:14:54.640: E/AndroidRuntime(777): FATAL EXCEPTION: main 
02-05 00:14:54.640: E/AndroidRuntime(777): java.lang.NoClassDefFoundError: javax.inject.Provider 
02-05 00:14:54.640: E/AndroidRuntime(777): at com.google.inject.internal.MoreTypes.canonicalizeForKey(MoreTypes.java:81) 
02-05 00:14:54.640: E/AndroidRuntime(777): at com.google.inject.Key.<init>(Key.java:119) 
02-05 00:14:54.640: E/AndroidRuntime(777): at com.google.inject.Key.get(Key.java:212) 
02-05 00:14:54.640: E/AndroidRuntime(777): at roboguice.inject.ContextScope.enter(ContextScope.java:106) 
02-05 00:14:54.640: E/AndroidRuntime(777): at roboguice.inject.ContextScope.<init>(ContextScope.java:80) 
02-05 00:14:54.640: E/AndroidRuntime(777): at roboguice.application.RoboApplication.initInstanceMembers(RoboApplication.java:100) 
02-05 00:14:54.640: E/AndroidRuntime(777): at roboguice.application.RoboApplication.getInjector(RoboApplication.java:83) 
02-05 00:14:54.640: E/AndroidRuntime(777): at roboguice.activity.RoboActivity.getInjector(RoboActivity.java:192) 
02-05 00:14:54.640: E/AndroidRuntime(777): at roboguice.activity.RoboActivity.onCreate(RoboActivity.java:70) 
02-05 00:14:54.640: E/AndroidRuntime(777): at com.robotest.MyActivity.onCreate(MyActivity.java:19) 
02-05 00:14:54.640: E/AndroidRuntime(777): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
02-05 00:14:54.640: E/AndroidRuntime(777): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
02-05 00:14:54.640: E/AndroidRuntime(777): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
02-05 00:14:54.640: E/AndroidRuntime(777): at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
02-05 00:14:54.640: E/AndroidRuntime(777): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
02-05 00:14:54.640: E/AndroidRuntime(777): at android.os.Handler.dispatchMessage(Handler.java:99) 
02-05 00:14:54.640: E/AndroidRuntime(777): at android.os.Looper.loop(Looper.java:123) 
02-05 00:14:54.640: E/AndroidRuntime(777): at android.app.ActivityThread.main(ActivityThread.java:4627) 
02-05 00:14:54.640: E/AndroidRuntime(777): at java.lang.reflect.Method.invokeNative(Native Method) 
02-05 00:14:54.640: E/AndroidRuntime(777): at java.lang.reflect.Method.invoke(Method.java:521) 
02-05 00:14:54.640: E/AndroidRuntime(777): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
02-05 00:14:54.640: E/AndroidRuntime(777): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
02-05 00:14:54.640: E/AndroidRuntime(777): at dalvik.system.NativeStart.main(Native Method) 

答えて

7

Roboguice 1.1.2ではサポートされていないGuice 3で作業していたようです。私はGuice 3を削除し、Guice 2.0-no_aopを入れました。これが私の問題を解決しました。再度、感謝します!

+0

Guozのダウングレードではなく、Roboguiceを新しいバージョンにアップグレードする方が良いですか? –

+0

1年前 - まだありません(この質問は2012年2月以降です)。今日 - 確かに:) – forhas

+0

私は、感謝を参照してください –

33

javax.inject-1.jarをダウンロードして、ビルド・パスに追加します。

hereを参照してください。

また、Guice without AOPを使用していることを確認してください。

+0

これはAndroidでは機能しません。以下のYogevの答えを試してみてください。 – adamwong246

+2

Androidでテストしたところで何を意味するのかわかりません。 – Luis

+1

guice-3.0.zipとjavax.inject-1.jarにあるjavax.inject.jarの違いは何ですか?それは動作し、他のものはありませんが、私は理由についてのドキュメントを見つけることができません。 – dbaugh

3

    • roboguice-2.0.jar
    • Guiceの-3.0-no_aop.jar
    • jsr305-1.3.9.jar javax.inject-1.jar
    • を持っていることを確認してください

    となるはずです。

    +0

    ダウンロードhttps://github.com/roboguice/roboguice/issues/29 – LMK