我试图创建(注入)一个SharedPreferences对象,这个对象导致了一个NullPointerException,但我似乎不知道为什么。
来自AndroidStudio的错误:
com.tom.android.common.TomApplication.getLoggedIn(TomApplication.java:110)的java.lang.NullPointerException
我是怎么注射的
public class TomApplication extends Application {
@Inject
private SharedPreferences sharedPreferences;给出错误的第(110)行:
Boolean loggedIn = sharedPreferences.getBoolean(PrefsHelper.LOGGED_IN, false);这是我的应用程序/build.gradle文件:
应用插件:'com.android.application‘ 安卓{ compileSdkVersion 10 buildToolsVersion "20.0.0“ getDefaultProguardFile('proguard-android.txt'),{ defaultConfig { applicationId "com.tom.android“minSdkVersion 10 targetSdkVersion 20 } buildTypes { runProguard false proguardFiles proguardFiles‘pro卫士规则”} 依赖关系{ 编译'com.android.support:support-v4:20.0.0‘编译’org.boboguice:2.0‘编译文件(’libs/android-sqlite sets-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);
}
}对我做错了什么有什么想法吗?
发布于 2014-10-24 13:50:15
应该在构造函数中添加以下内容:
RoboGuice.injectMembers(context, this);https://stackoverflow.com/questions/26495852
复制相似问题