现在第二次我可能在某处发生了错误的配置。
private int calcTrackIndex(long pos){
for(int i=0;i<=positions.length;i++){
if(positions [i]>pos)return i-1; //one too far
}
return 0;
}
此函数突然开始返回-1,因为position []数组以0开头不能发生。调试半小时后,我注意到调试器“跳过”了第三行。我做了“清理项目” - “重建项目”,一切都很好。
为什么会发生这种情况?如何防止这种情况发生?使用“运行”和“调试”按钮将此错误发布到不同的仿真器和设备。
发生这种情况时,调试器不再与代码同步。通过使用“debug”按钮重新启动调试无法解决此问题,只有clean-rebuild有帮助。
答案 0 :(得分:0)
调试半小时后,我注意到调试器&#34;跳过&#34;第三行。我做了#34;清理项目&#34; - &#34;重建项目&#34;一切都很好。
为什么会发生这种情况?如何防止这种情况发生?
如果尚未从最新版本的代码重建已编译的.class文件,则会发生这种情况。这些编译文件包含调试器正在使用的代码的先前版本中的行信息。
如您所见,您可以通过强制重建代码来解决问题。这可确保编译的代码与您在Android Studio中编辑的代码相匹配。