我在调试 Android 应用程序时遇到了一个奇怪的问题。 准确地说,我在此处复制了我正在运行的确切代码:
// Get the puzzles from cache
List<PuzzleDetails> newPuzzles = m_cachedPuzzles.getPuzzles(count);
if(newPuzzles.size() > 0){
// Remove from cache
m_cachedPuzzles.removePuzzles(newPuzzles); // LINE (A)
// Add the new puzzles from cache immediately
m_ownedPuzzles.addPuzzles(newPuzzles);
Log.d("requests", "" + newPuzzles.size() + " moved from cache to user");
}
int left = count - newPuzzles.size();
String deviceId = ResourcesPublisher.getInstance().getDeviceId();
// Don't let anyone else use these points for now
ChallengePointsManagerImpl.getInstance().usePoints(left);
Log.d("requests", "aquirePuzzles(" + left + ")");
// Get a list of requests for 'left' number of puzzles
RequestList reqList = getRequestList(left);
// TODO this is a bug, now
if(reqList.size() > 1){
reqList = getRequestList(left); // LINE (B)
}
当我运行这段代码时,在跨过 (A) 行之后 m_cachedPuzzles.removePuzzles(newPuzzles); 调试器“跳转”到最后一行 (B) reqList = getRequestList(左);
一个简单的检查表明它确实跳过了这些代码行之间的所有代码。 例如,从未调用或写入 Log.d(...)。
谁能告诉我为什么会这样???
谢谢!
最佳答案
在编译代码之后和开始调试之前,尝试右键单击 > 刷新
项目,因为它出现在 Project Explorer 上。
关于java - Eclipse 调试器 "jumps"跳过重要代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9058149/