【发布时间】:2014-10-24 20:43:56
【问题描述】:
我直接在 Android Studio 中使用 RoboGuice 3.0,因为我需要对 ActionBarActivity 的支持。这是我的部门:
compile 'org.roboguice:roboguice:3.0'
我必须做的第一件奇怪的事情是解决“无法使用注释数据库”的 ClassNotFoundException。似乎如果没有给出注释包,则 packageList 是 prepended with empty string 并且 DI 框架抱怨它无法在根包中找到 AnnotationDatabaseImpl(这是预期的)。所以我在清单中这样做了:
<meta-data android:name="roboguice.annotations.packages" android:value="roboguice"/>
解决了这个问题。然后,我将代码更改为:
@ContentView(R.layout.activity_playlists)
public class Playlists extends RoboActionBarActivity {
@InjectView(R.id.toolbar)
Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setSupportActionBar(toolbar);
}
}
setSupportActionBar() 抛出 NPE。我通过调试器和 注入视图时,viewMembersInjectors 映射为空。我在想我必须做的奇怪的修复,这是相关的。不知何故,没有发现 injectview 成员。但是我的@ContentView 注入有效(如果我删除它,则永远不会调用内容更改回调)。
有谁知道如何解决这个问题?
【问题讨论】: