我如何获得上下文?我在这里做错了吗?
这是我在 Android 中的错误:
致命异常:主要 com.google.inject.CreationException:Guice 创建错误:1)注入构造函数时出错,java.lang.NullPointerException
public class DatabaseProvider implements Provider {
@Inject
protected static Provider<Context> contextProvider;
//eror context is null
protected Context context = contextProvider.get();
@Override
public DatabaseHelper get() {
return (DatabaseHelper) OpenHelperManager
.getHelper(context, DatabaseHelper.class);
}
}
实现 DaoProvider:
public class DaoProvider<D extends Dao<E, ?>, E> implements Provider<D> {
@Inject
private DatabaseProvider databaseProvider;
private final Class<E> cls;
public DaoProvider(Class<E> cls) {
this.cls = cls;
}
@Override
public D get() {
try {
return databaseProvider.get().getDao(cls);
} catch (SQLException e) {
Log.d("injection", "database provider error", e);
}
return null;
}
}
在模块中实现:
public class BabyModule extends AbstractModule {
@Override
protected void configure() {
TypeLiteral<Dao<Baby, Integer>> typeLiteral = new TypeLiteral<Dao<Baby, Integer>>(){};
DaoProvider<Dao<Baby,Integer>, Baby> provider = new DaoProvider<Dao<Baby,Integer>, Baby>(Baby.class);
bind(typeLiteral).toProvider(provider);
}
}
感谢帮助