【问题标题】:Roboguice not injecting object and causing null pointer exceptionRoboguice 没有注入对象并导致空指针异常
【发布时间】:2014-10-21 20:36:50
【问题描述】:

我正在尝试创建(注入)一个导致 NullPointerException 的 SharedPreferences 对象,但我似乎无法弄清楚原因。

来自 AndroidStudio 的错误:

java.lang.NullPointerException 在 com.tom.android.common.TomApplication.getLoggedIn(TomApplication.java:110)

我是如何注射的:

public class TomApplication extends Application {

    @Inject
    private SharedPreferences sharedPreferences;

第 (110) 行给出错误:

Boolean loggedIn = sharedPreferences.getBoolean(PrefsHelper.LOGGED_IN, false);

这是我的 app/build.gradle 文件:

应用插件:'com.android.application'

机器人{ compileSdkVersion 10 buildToolsVersion "20.0.0"

defaultConfig {
    applicationId "com.tom.android"
    minSdkVersion 10
    targetSdkVersion 20
}

buildTypes {
    release {
        runProguard false
        proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
    }
} 

依赖{

compile 'com.android.support:support-v4:20.0.0'

compile 'org.roboguice:roboguice:2.0'

compile files('libs/android-sqlite-asset-helper.jar') 

}

最后,这是我的模块:

package com.tom.android.common.module;

import com.google.inject.AbstractModule; 
import roboguice.inject.SharedPreferencesName;

public class TomModule extends AbstractModule {

@Override
protected void configure() {
 bind(String.class).annotatedWith(SharedPreferencesName.class).toProvider(PreferencesNameProvider.class);
}

}

关于我做错了什么有什么想法吗?

【问题讨论】:

标签: java android dependency-injection sharedpreferences roboguice


【解决方案1】:

您应该在构造函数中添加以下内容:

RoboGuice.injectMembers(context, this);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-25
    • 2012-11-27
    • 1970-01-01
    • 1970-01-01
    • 2014-04-02
    • 1970-01-01
    • 1970-01-01
    • 2014-08-02
    相关资源
    最近更新 更多