对不起,如果这是一个不起眼的问题。
当使用System.out.println(),然后打印堆栈跟踪时,两者似乎重叠并相互干扰。
此代码:
<style name="custom" parent="Theme.Dialog.AppError">
<!-- it shows error: Error retrieving parent for item: No resource found that matches the given name 'Theme.Dialog.AppError'-->.
</style>
产生此输出
System.out.println("Multiple definitions for " + analyzer.name + ":");
for (String name : resultNames) {
System.out.println('\t' + name);
}
throw new RuntimeException("Multiple class definitions found matching " + analyzer.name);
预期的行为是在任何堆栈跟踪之前打印Analyzer1,Analyzer2等。但相反,两者似乎是在彼此之上打印,这使得难以阅读的结果。
我做错了什么?
修改 Kon的回答解释了这一点,但我不知道如何标记为已解决。
答案 0 :(得分:2)
System.out.println被缓冲,而错误输出未被缓冲。这意味着在您看到System.out.println的结果之前偶尔会有延迟。通过System.err.println报告异常,它没有缓冲,因此立即打印。
尝试将System.out.println语句切换到System.err.println,然后查看问题是否已解决。