尝试运行JavaFX应用程序时出错。
JavaFX应用程序运行时出现错误(Error whilst trying to run javafx application)的原因是在XML文件的顶部以外的任何位置遇到XML声明时会发出以下错误信息: "The processing instruction target matching "[xX][mM][lL]" is not allowed." 这是一个有效的诊断消息;在这种情况下,其他XML解析器应该发出类似的错误消息。
为了解决这个问题,请检查以下可能性:
1. 在XML声明之前存在一些空格或其他可见内容。
解决方法: 删除XML声明之前的空格或任何其他可见内容。
2. 在XML声明之前存在一些不可见内容。最常见的情况是字节顺序标记(Byte Order Mark,BOM)。
解决方法: 使用W3C关于HTML中BOM的页面建议的技术,如去除BOM。
3. XML内容中存在一个杂项的XML声明。这可能发生在通过编程或剪切粘贴方式组合XML文件时。
解决方法: 以不区分大小写的方式搜索"< ? xml",并从文件中删除除顶部XML声明之外的所有声明。
要消除杂项的XML声明,必须将文件视为文本而不是XML,因为额外的XML声明会导致XML无法成为"well-formed"。在将其视为XML文件之前,使用文本编辑器或以编程方式打开文件并将其作为文本操作,以消除杂项的"< ? xml ? >"声明。
以上是关于解决JavaFX应用程序运行时出现错误的一些建议。
问题:在尝试运行JavaFX应用程序时出错
出现原因:XML文件中存在空格或者添加了额外或者较少的标签
解决方法:调试XML文件。检查是否有空格或者添加了额外或者较少的标签。
为了更好地理解,通过命令行构建项目。在Windows中使用gradlew build
命令。
在我的情况下,AndroidManifest.xml文件在第一行有一个空格。
<Empty Row> //这个导致了问题 <?xml version="1.0" encoding="utf-8"?>
另外需要注意的是,“添加了额外或者较少的标签”不会导致这个错误消息,除非这些标签在XML声明之前。最后,你的“要么…”的陈述是误导性的,因为它排除了错误的其他可能源(#2和#3在上面进行了详细描述)。