致命错误:值的 java.lang.String 布局无效
Posted
技术标签:
【中文标题】致命错误:值的 java.lang.String 布局无效【英文标题】:Fatal Error: Invalid Layout of java.lang.String at value 【发布时间】:2012-10-13 08:46:14 【问题描述】:我在 Eclipse 中(在控制台中)遇到了一个非常严重的错误:
Invalid layout of java.lang.String at value
A fatal error has been detected by the Java Runtime Environment:
Internal Error (javaClasses.cpp:129), pid=15238, tid=140306591237888
fatal error: Invalid layout of preloaded class
JRE version: 7.0_07-b10
Java VM: Java HotSpot(TM) 64-Bit Server VM (23.3-b01 mixed mode linux-amd64 compressed ops)
Failed to write core dump. Core dumps have been disabled. To enable core dumping, try ulimit -c unlimited" before starting Java again
An error report file with more information is saved as:
/home/till/workspace/Encrypt/hs_err_pid15238.log
If you would like to submit a bug report, please visit:
http://bugreport.sun.com/bugreport/crash.jsp
Log Download
我无法理解这一点,因为即使 Eclipse 也不会显示任何错误(在代码编辑器中)... 这是一个真正的生产力杀手,因为它阻碍了所有进展。 如果有人对如何解决此问题有任何想法,请回答此问题。
非常感谢您,
直到
【问题讨论】:
什么时候出现这个错误?你说 Eclipse 没有显示任何错误,那么当你尝试将它部署到你的设备上时它是否弹出? 出现在控制台中,eclipse没有编译任何东西。 “没有错误”是指“课程旁边没有红色标志”。 不确定:可能是一些损坏的类文件(“预加载类的无效布局”)。 Internal Error (javaClasses.cpp:129)的可能重复 如果我从 android 项目运行 JUnit 测试,就会发生这种情况。从“引导条目”中取消选中“Android Lib”有帮助。 【参考方案1】:如果是 Android 项目,您必须从该特定类的启动配置中删除 Android Lib。使用下面的“演练”作为指导。
项目->属性->运行/调试设置; 选择您的班级并点击“编辑”; 打开标签“Classpath”并从“Bootstrap Entries”中删除 Android Lib; 应用一切并再次运行课程。【讨论】:
我从引导条目中删除了“Android 4.1.2”,但之后它无法启动,没有错误,没有在我的关系上部署...单击“恢复默认条目”它会重新启用“Android 4.1.2”库,然后我又得到了同样的错误。 @***Exception 我在 Eclipse 上遇到了同样的问题。我从引导条目中删除了 Android Lib,并添加了标准 JRE 库作为替代。我的问题是在 JUnit 测试中,这解决了问题。 很明显这就是Invalid layout of preloaded class
的意思!我早该知道。 (Android,我爱你,但这就是我们不能拥有美好事物的原因。)
这对我有用并启用了 JUnit 执行,而无需选择“Android JUnit Test”,即使您想测试非 UI 组件也会启动模拟器。但是,我更喜欢从 Run > Run Configurations... > JUnit 访问此屏幕。【参考方案2】:
我遇到了同样的问题,然后(正如 Jeff Schultz 所说 here)我尝试了:
运行方式 -> Android 应用程序
问题解决了。但是我不知道导致这个问题的原因。希望对你有帮助!
【讨论】:
太棒了!!!!非常感谢!这是因为我试图在我的项目中将 1 个文件作为常规 Java 文件(使用 main 等)运行。从那以后,它一直在倾销。 (再次)作为 Android 应用程序运行......它正常工作!【参考方案3】:这发生在我之后:
-
在我忘记删除
public static void main(String args[])
函数的Android 应用程序项目中插入一个类。 (之前曾对课程进行过快速测试)。
尝试运行应用程序,同时我已打开上述类并将其集中在 Eclipse 编辑器上。
有趣的是,在 Eclipse 错误之后,无论我将焦点切换到哪个类,当我再次尝试运行应用程序时,我都遇到了同样的错误。
受Odyr Sohn 解决方案的启发,我设法解决了问题(从 Project->Properties->Run/Debug Settings 删除了错误的启动配置),但是当我尝试从这个类运行应用程序,同样的事情又发生了。当我从类中删除public static void main(String args[])
函数时,问题就得到了很好的解决。
【讨论】:
【参考方案4】:您应该为“Android 应用程序”进行运行配置。如果您错误地将其设置为“Java 应用程序”,则会显示此错误。
【讨论】:
【参考方案5】:同样的事情发生在我身上。我创建了一个 TestActivity,我猜它有一个 public static void main(String args[]) 函数。我进入属性,然后运行/调试并删除了 TestActivity,它工作得很好。
【讨论】:
【参考方案6】:我遇到了同样的问题,解决方法:
运行->运行配置;
点击左侧“Android应用”->顶部“新建”按钮;
然后输入名称并“浏览”项目 -> 工作!
【讨论】:
【参考方案7】:我在 fatal error: Invalid layout of preloaded class
上使用 Windows 7 的 Kepler Service Release 1 遇到了类似的问题。
Project -> Properties -> Java Build Path -> Order and Export --> check mark any
unchecked library or Android version and then hit OK. Then run as Android application.
【讨论】:
以上是关于致命错误:值的 java.lang.String 布局无效的主要内容,如果未能解决你的问题,请参考以下文章
BlueJ 错误:“不兼容的类型:int 无法转换为 java.lang.String”和“不兼容的类型:java.lang.String 无法转换为 int”
java.lang.String 和 String 之间的类型不匹配错误
如何修复错误:无法将类型“java.lang.String”的值转换为所需类型“java.lang.Long”;
无法从类型 [java.lang.String] 转换为类型 [java.lang.Long]
HBase alter table 命令失败并显示“错误:d!= java.lang.String”
(更新:如何在 sqflite 中存储 List<String> 数据类型) sqflite 错误:DatabaseException(java.lang.String 无法转换为 jav