【发布时间】:2010-07-28 18:03:59
【问题描述】:
更新:已修复,这是由于视图中缺少属性以及我不知道如何使用调试器 :)
我真的是 Android 新手。我刚刚完成了记事本教程,并且正在制作类似的东西(大部分代码完全相同)。我正在经历的一系列事件:
- 调试应用
- 单击菜单,其中包含正确的项目
- 点击插入,打开一个新的活动(GoalEdit)
- 我在
GoalEdit.onCreate的第一行打了一个断点并收到以下警告:
一种。 (ActivityManager) 启动超时,放弃唤醒锁!
湾。 (ActivityManager) HistoryRecord{...} 的活动空闲超时
- 我在
setContentView中的GoalEdit.onCreate有一个断点 - 在此通过后:
一种。 ActivityThread.perfo:找不到源。
相关代码如下:
GoalsList.java
/**
* Add a menu to this activity
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
menu.add(0, INSERT_ID, 0, R.string.menu_insert);
return true;
}
/**
* Catch the menuItemSelected event
*/
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch (item.getItemId()) {
case INSERT_ID:
createGoal();
return true;
}
return super.onMenuItemSelected(featureId, item);
}
/**
* Open the Edit activity to create a new goal
*/
private void createGoal() {
Intent i = new Intent(this, GoalEdit.class);
startActivityForResult(i, ACTIVITY_CREATE);
}
GoalEdit.java
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mDbGoals = new GoalDbTable(this);
mDbGoals.open();
setContentView(R.layout.goal_edit);
mName = (EditText) findViewById(R.id.name);
Button finishBtn = (Button) findViewById(R.id.finish);
mRowId = (savedInstanceState == null) ? null :
(Long) savedInstanceState.getSerializable(GoalDbTable.KEY_ROWID);
if (mRowId == null) {
Bundle extras = getIntent().getExtras();
mRowId = (extras != null) ? extras.getLong(GoalDbTable.KEY_ROWID)
: null;
}
populateFields();
finishBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setResult(RESULT_OK);
finish();
}
});
}
private void populateFields() {
if (mRowId != null) {
Cursor goal = mDbGoals.find(mRowId);
startManagingCursor(goal);
mName.setText(goal.getString(
goal.getColumnIndexOrThrow(GoalDbTable.KEY_NAME)));
}
}
@Override
protected void onResume() {
super.onResume();
populateFields();
}
我觉得错误在于它找不到 GoalEdit(尽管它显然可以)。我的代码中是否有任何明显的 fubar(或我应该检查的其他内容)?
编辑:想出了如何更好地使用调试器,不得不再按几次恢复以显示异常。
例外情况
ERROR/AndroidRuntime(741):
java.lang.RuntimeException: Unable to start activity
ComponentInfo{com.rossmasters.mygoals/com.rossmasters.mygoals.GoalEdit}:
java.lang.RuntimeException:
Binary XML file line #9: You must supply a layout_width attribute.
我不确定这是指哪个文件,但我已将layout_width's 添加到每个项目中。
【问题讨论】:
-
Ross 启用你的 logcat,你会得到你的问题,窗口 > 显示视图 > 其他 > Android > Logcat
-
Jorgesys:是的,没错。似乎问题与视图中缺少 layout_width 有关。认为我需要阅读一些关于使用 Eclipse 的调试器的知识:)
-
;) 是的,您的 goal_edit.xml 布局中缺少属性
-
@Jorgesys:将此作为答案发布,我会接受 :)
-
有一点在线清理:)