我剛開始使用Eclipse,希望知道在我的應用程序中導致錯誤的原因。我不知道他們是否像Visual Studio一樣。在Eclipse中調試android代碼的最佳方式是什麼?
我的意思是我得到了空指針異常,但即使把斷點後,我很困惑什麼原因錯誤發生。
因爲我是新來的大部分時間我運行不好或代碼不會工作。我如何認識到我的錯誤。有時我的代碼無法正常工作,異常很難發現我的代碼出現真正的問題。
有人檢查代碼並指導我如何找到它。我的意思是如何知道空指針異常發生在哪裏。這裏
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,我們可以幫助您知道如何閱讀它找到錯誤 – codeMagic
如果你問我,logcat是相當可怕的,但是除非你交換IDE,否則你必須使用它。當從logcat的複製確保這一切複製到一個文本文件作爲郵件的一半不顯示了很多的時間,然後再通過這一點,並找出其中的問題,也將其設置爲錯誤模式不詳細 –