eclipse - eclipse在启动时崩溃(opensuse linux)
问题描述
在对 linux 进行一些更新(包括内核更新)之后,Eclipse 将不再启动。从命令行开始只会给我一堆警告消息,然后就停止了。Afaik,更新是唯一可能改变系统的东西。
操作系统是 OpenSuse 15.1 linux(4.12.14-lp151.28.52-默认内核)。Eclipse是氧气4.7,Java openjdk 11.0.7 2020-04-14。
kde4-config -v 说
Qt: 4.8.7
KDE 开发平台: 4.14.38
kde4-config: 1.0
Gtk 是 3.22.30-lp151.6.6.1
命令行运行的输出
(Eclipse:8147): Gtk-WARNING **: Theme parsing error: gtk.css:68:35: The style property GtkButton:child-displacement-x is deprecated and shouldn't be used anymore. It will be removed in a future version
用不同的 gtk.css:xx:yy 重复 6 次
(Eclipse:8147): GLib-CRITICAL **: g_base64_encode_step: assertion 'in != NULL' failed
重复 224 次
然后 2 次第一组消息(总共 12 条消息),
然后再次
(Eclipse:8147): GLib-CRITICAL **: g_base64_encode_step: assertion 'in != NULL' failed
重复 224 次
最后,我得到
Job found still running after platform shutdown. Jobs should be canceled by the plugin that scheduled them during shutdown: org.eclipse.epp.internal.mpc.ui.wizards.MarketplaceDropAdapter$1
除了提到的更新之外,我不知道我的 Eclipse 安装发生了什么,这些更新没有包含任何 Eclipse 更新。不知道之前是否出现过警告,因为我通常不会从命令行启动 Eclipse。
我一天中的大部分时间都在互联网上搜索,没有进一步了解。
在 Gtk+ 的 Ubuntu 升级中提到了 GLib 关键警告,但我无法与我的具体案例建立联系。
Eclipse 工作区日志的提示让我看了一下(我真的很抱歉之前发布了错误的日志)。单个 Eclipse 启动的原始日志文件大于 4MB,所以我将只发布第一行。
!SESSION 2020-06-15 12:10:03.594 -----------------------------------------------
eclipse.buildId=4.7.3.M20180330-0640
java.version=11.0.7
java.vendor=Oracle Corporation
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_GB
Framework arguments: -product org.eclipse.epp.package.cpp.product
Command-line arguments: -os linux -ws gtk -arch x86_64 -product org.eclipse.epp.package.cpp.product
This is a continuation of log file /home/heinrich/workspace/.metadata/.bak_0.log
Created Time: 2020-06-15 12:10:20.886
!ENTRY org.eclipse.epp.logging.aeri.core 2 1 2020-06-15 12:10:20.886
!MESSAGE AERI failed with an error. Please report this error: null ; version: 2.0.7.v20170906-1327
!STACK 0
java.lang.NullPointerException
at org.eclipse.ui.preferences.ScopedPreferenceStore.contains(ScopedPreferenceStore.java:325)
at org.eclipse.epp.internal.logging.aeri.ide.di.SystemSettingsCreationFunction.loadFromPreferences(SystemSettingsCreationFunction.java:138)
at org.eclipse.epp.internal.logging.aeri.ide.di.SystemSettingsCreationFunction.compute(SystemSettingsCreationFunction.java:59)
at org.eclipse.e4.core.internal.contexts.ValueComputation.get(ValueComputation.java:62)
at org.eclipse.e4.core.internal.contexts.EclipseContext.internalGet(EclipseContext.java:262)
at org.eclipse.e4.core.internal.contexts.EclipseContext.get(EclipseContext.java:228)
at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier.fillArgs(ContextObjectSupplier.java:194)
at org.eclipse.e4.core.internal.contexts.ContextObjectSupplier.get(ContextObjectSupplier.java:178)
at org.eclipse.e4.core.internal.di.InjectorImpl.resolveArgs(InjectorImpl.java:529)
at org.eclipse.e4.core.internal.di.InjectorImpl.invokeUsingClass(InjectorImpl.java:297)
at org.eclipse.e4.core.internal.di.InjectorImpl.invoke(InjectorImpl.java:220)
...继续
日志文件的延续似乎是循环引用,所以我不确定这是不是开始。
试过
- eclipse -clean
- eclipse -initialize
基本上没有改变。
作为最后的手段,我安装了 2020-03 并在工作区副本(即日志所在的位置)上启动它,这似乎没问题。
编辑
使用工作区副本重复“实验”显示与氧气基本相同的结果。2020-03 开始在一个干净的工作区(空目录)上正常运行。了解如何使用不同的工作空间发射氧气。它显示了所有 Gtk 和 GLib-Critical 警告,但正确地显示了一个欢迎屏幕。所以我认为这肯定与工作区内容有关。
浪潮
编辑2
为了找到某种根本原因,我从备份数据创建了一个工作区(从上周开始,一切都运行顺利)。当它工作时,我将它的 .metadata/ 目录块逐块复制到失败的工作区,并在每一步之后尝试氧气。在复制所有文件之后,我认为最终会修复失败的 WS,氧气仍然没有启动。
通过一些尝试'n错误,我发现仅仅通过运行氧气就将良好的工作空间变成了糟糕的工作空间。再来回复制/删除/恢复之后,似乎从备份中恢复文件就足以.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi
使氧气启动,但从来没有第二次成功运行。
目前我无法更改 SWT 主题,因为市场实际上并没有出现。
为了排除与桌面主题的依赖关系,我再次更改了几次,但均未成功。
2潮
我现在没有主意了。任何帮助都可以让 Eclipse 再次运行。
解决方案
推荐阅读
- angular - 大写指令不更新输入角度
- android - 警告:API 'variant.getJavaCompile()' 已过时,已替换为 'variant.getJavaCompileProvider()'
- windows - 将“//”替换为“;” 使用 sed
- dart - .template.dart 文件未创建
- java - Android - JSONArray 上的 toString 使用双引号和反斜杠使 json 无效
- java - 无法找到明确的活动类您是否在 AndroidManifest.xml 中声明了此活动?
- xcode - 使用 Segue 自动加载 SecondViewController
- node.js - Node 环境中的 Twitter 应用程序身份验证,React
- r - R 第二列中的累积和和偏移量
- c - 使用C中的指针从字符串中提取子字符串