【发布时间】: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