【发布时间】:2013-05-22 20:44:14
【问题描述】:
我刚开始接触 Eclipse,想知道是什么导致我的应用程序出错。我想知道他们是否像 Visual Studio 一样。
我的意思是我有空指针异常但即使在放置断点之后我也很困惑导致错误发生的原因。
因为我大部分时间都是新手,所以我运行不好或代码不起作用。我如何认识到我的错误。有时我的代码无法运行,并且很难找出我的代码发生的真正问题。
请有人检查代码并指导我如何找到它。我的意思是如何知道空指针异常发生在哪里。
public class MainActivity extends Activity {
Set<String> tasks = new HashSet<String>();
final String prefName = "andorid";
SharedPreferences sp = getSharedPreferences(prefName, MODE_PRIVATE);
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
SetupApp();
}
// / Add the task in this function
private void SetupApp() {
tasks.add("blah");
if (!sp.contains("tasks")) {
Editor edit = sp.edit();
edit.putStringSet("tasks", tasks);
edit.commit();
}
}
public void btnClick(View view) {
EditText etxt = (EditText) findViewById(R.id.txtTask);
tasks.add(etxt.getText().toString());
}
public void UpdateUI(String TaskName) {
final ListView listview = (ListView) findViewById(R.id.listView1);
Set<String> tasks = sp.getStringSet("tasks", new HashSet<String>());
@SuppressWarnings("unchecked")
ArrayList<String> taskarr = (ArrayList<String>) tasks;
final ArrayList<String> list = new ArrayList<String>();
for (int i = 0; i < taskarr.size(); ++i) {
list.add(taskarr.get(i));
}
}
public void LoadTasks() {
}
}
class StableArrayAdapter extends ArrayAdapter<String> {
HashMap<String, Integer> mIdMap = new HashMap<String, Integer>();
public StableArrayAdapter(Context context, int textViewResourceId,
List<String> objects) {
super(context, textViewResourceId, objects);
for (int i = 0; i < objects.size(); ++i) {
mIdMap.put(objects.get(i), i);
}
}
@Override
public long getItemId(int position) {
String item = getItem(position);
return mIdMap.get(item);
}
@Override
public boolean hasStableIds() {
return true;
}
}
【问题讨论】:
-
为什么不看看logcat的输出看看NPE在哪里呢?仅查看代码并找出“NPE”与“它可能在此处或此处或此处或...”不同的地方有点困难
-
发布您的 logcat,我们可以帮助您了解如何阅读它以找到错误
-
如果您问我 logcat 是相当可怕的,但除非您交换 IDE,否则您必须使用它。从 logcat 复制时,请确保将其全部复制到文本文件中,因为很多时候没有显示一半的消息,然后仔细检查并找出问题所在,并将其设置为错误模式而不是详细
-
@MatthewPigram 嗯...我发现 logcat 非常有用,一旦你理解它就很容易阅读
-
@MatthewPigram 那么,就他/她的选择向 OP 提出建议吧。我不知道查看日志输出有什么不“直观”,或者 Eclipse 调试器有什么特别痛苦的地方:没有任何详细说明,你并没有真正帮助 OP。被截断的堆栈跟踪是因为这些部分几乎从不与异常相关。
标签: java android nullpointerexception