Dagger - 会员注册没有注册?

时间:2015-02-03 07:30:44

标签: android dagger

我有匕首设置并正确定义了注射剂,但得到以下errpr:

我看到了几个相似的帖子,但答案没有解决这个问题

java.lang.IllegalArgumentException:没有为members / com.aryaxt.app.Pages.LoginActivity注册注入。您必须将其明确地添加到其中一个模块的“注入”选项中。

模块

@Module(library = true, injects = {
        LoginActivity.class
})
class MyModule {

    private final Context context;

    public MyModule() {
    }

    @Provides @Singleton
    IAuthService provideAuthService() {
        return new AuthService();
    }
}

应用

public class MyApplication extends Application {

    private ObjectGraph objectGraph;

    @Override
    public void onCreate() {
        super.onCreate();

        objectGraph = ObjectGraph.create(new MyModule());
    }

    public  ObjectGraph getObjectGraph() {
        return  objectGraph;
    }
}

活动

public class LoginActiity extends ActionBarActivity {

    @Inject
    IAuthService authService;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        ((MyApplication) getApplication()).getObjectGraph().inject(this);
    }
}

修改

02-03 07:54:43.934    3305-3305/com.aryaxt.MyApp E/AndroidRuntime﹕ FATAL EXCEPTION: main
    Process: com.aryaxt.MyApp, PID: 3305
    java.lang.RuntimeException: Unable to start activity ComponentInfo{com.aryaxt.MyApp/com.aryaxt.MyApp.Pages.LoginActivity}: java.lang.IllegalArgumentException: No inject registered for members/com.aryaxt.MyApp.Pages.LoginActivity. You must explicitly add it to the 'injects' option in one of your modules.
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2298)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)
     Caused by: java.lang.IllegalArgumentException: No inject registered for members/com.aryaxt.MyApp.Pages.LoginActivity. You must explicitly add it to the 'injects' option in one of your modules.
            at dagger.ObjectGraph$DaggerObjectGraph.getInjectableTypeBinding(ObjectGraph.java:302)
            at dagger.ObjectGraph$DaggerObjectGraph.inject(ObjectGraph.java:279)
            at com.aryaxt.bobber.Pages.BaseActivity.onCreate(BaseActivity.java:18)
            at com.aryaxt.bobber.Pages.LoginActivity.onCreate(LoginActivity.java:29)
            at android.app.Activity.performCreate(Activity.java:5933)
            at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
            at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2251)
            at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2360)
            at android.app.ActivityThread.access$800(ActivityThread.java:144)
            at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1278)
            at android.os.Handler.dispatchMessage(Handler.java:102)
            at android.os.Looper.loop(Looper.java:135)
            at android.app.ActivityThread.main(ActivityThread.java:5221)
            at java.lang.reflect.Method.invoke(Native Method)
            at java.lang.reflect.Method.invoke(Method.java:372)
            at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:899)
            at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:694)

0 个答案:

没有答案
相关问题