我在调试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(...)。
谁能给我一个线索,为什么会发生???
谢谢!
最佳答案
在编译代码之后并开始调试之前,请尝试右键单击该项目上显示的项目上的> refresh
。