我想我尝试了所有建议的解决方案,但是这个Eclipse自动完成问题非常特殊:
- 我启动Eclipse,内容辅助工作正常; 我想在我的Swing项目中创建一个LineBorder;
- 输入
LineBorder panelBorder = new Li
并按Ctrl+Space; - 没有弹出窗口出现,状态栏用红色显示"No completion available";
- 我尝试按Ctrl+空格在内容辅助工作良好的元素2秒前,它不再工作了。
- 我在其他项目上尝试同样的事情,在关闭并重新打开它后,在清理它和内容辅助工作后,我尝试使用LineBorder构造器,然后它崩溃。
What I tried:
- 在"首选项->Java->编辑器->内容辅助->高级"中重置为默认值;
- 选中同一菜单中的每个复选框;
- 创建一个新的工作区并在那里尝试;
- 删除.metadata/.plugins/org.eclipse.jdt.core中的.index文件和'savedIndexNames.txt';
- 检查是否有重复库。
我没有尝试重新安装Eclipse。我使用的版本是Eclipse IDE for Java Developers (Juno)。
似乎什么都不起作用。
更新:按照iGili的建议检查日志。失败时抛出了一些异常:
org.eclipse.e4.core.di.InjectionException: org.eclipse.core.commands.ExecutionException: While executing the action, an exception occurred
Caused by: org.eclipse.core.commands.ExecutionException: While executing the action, an exception occurred
Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
at org.eclipse.jdt.internal.codeassist.InternalCompletionProposal.findConstructorParameterNames(InternalCompletionProposal.java:257)
at org.eclipse.jdt.internal.codeassist.InternalCompletionProposal.findParameterNames(InternalCompletionProposal.java:1456)
at org.eclipse.jdt.ui.text.java.CompletionProposalLabelProvider.appendUnboundedParameterList(CompletionProposalLabelProvider.java:113)
at org.eclipse.jdt.ui.text.java.CompletionProposalLabelProvider.createMethodProposalLabel(CompletionProposalLabelProvider.java:272)
at org.eclipse.jdt.ui.text.java.CompletionProposalLabelProvider.createStyledLabel(CompletionProposalLabelProvider.java:570)
at org.eclipse.jdt.internal.ui.text.java.LazyJavaCompletionProposal.computeDisplayString(LazyJavaCompletionProposal.java:262)
at org.eclipse.jdt.internal.ui.text.java.LazyJavaCompletionProposal.getStyledDisplayString(LazyJavaCompletionProposal.java:238)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.handleSetData(CompletionProposalPopup.java:841)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup.access$24(CompletionProposalPopup.java:831)
at org.eclipse.jface.text.contentassist.CompletionProposalPopup$3.handleEvent(CompletionProposalPopup.java:593)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
at org.eclipse.swt.widgets.Table.checkData(Table.java:1166)
at org.eclipse.swt.widgets.Table.wmNotifyChild(Table.java:6749)
at org.eclipse.swt.widgets.Control.wmNotify(Control.java:5534)
at org.eclipse.swt.widgets.Composite.wmNotify(Composite.java:1896)
at org.eclipse.swt.widgets.Control.WM_NOTIFY(Control.java:5086)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4584)
at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:341)
at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1627)
at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2069)
at org.eclipse.swt.widgets.Display.windowProc(Display.java:4989)
at org.eclipse.swt.internal.win32.OS.CallWindowProcW(Native Method)
at org.eclipse.swt.internal.win32.OS.CallWindowProc(OS.java:2440)
at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:564)
at org.eclipse.swt.widgets.Table.callWindowProc(Table.java:430)
at org.eclipse.swt.widgets.Control.windowProc(Control.java:4623)
然后继续,我不知道发布长堆栈跟踪的惯例是什么
我有相同的。Windows ->首选项-> Java ->编辑器->内容辅助->高级。确保在默认内容协助列表(弹出的第一个面板)选中"Java建议"复选框。
点击底部的"还原默认值"按钮,可以自动检查"Java提案"
返回到高级内容辅助首选项页面并恢复默认值。使用OK按钮关闭对话框
我也遇到了同样的问题。实际上,我让内容辅助弹出,但那比几个像素还小。(谁缩小了这个,为什么缩小,我不知道……)但如果你看到一些奇怪的东西(在我的例子中,那是字母"Rp",但我猜它可以是任何东西),通常内容辅助应该出现,试着展开它,你可能会得到它。祝你好运。
这些答案都没有帮助我:Java提案被选中,恢复默认值没有任何作用。
需要选择Windows -> Preferences -> Java -> Editor -> Content Assist -> Advanced (Java Proposals)
对我来说有效的是创建一个新的工作空间,并将所有的项目复制到该工作空间。
我认为您遇到了3.6的已知缺陷。看到
尝试下载一个更新的版本-从3.7
开始修复[edit]我刚刚意识到你写了'Juno'-你用的是最新的(4.2.2)吗?
我刚刚修复了Juno切换工作区然后切换回来的相同问题。
我有同样的问题,但在我的项目中只有一个特定的文件(完成在其他文件上工作得很好)。我也在用Eclipse Juno。
我通过删除由于未使用的导入文件中完成失败的一些警告修复了这个问题…它又开始工作了!
这个复选框"java提案"将被选中,直到我失败并得到"无完成可用"。之后,当我下次打开设置时,它将显示为未勾选。
转到Eclipse→首选项→Java→编辑器→内容辅助→恢复默认值
项目→清洁
我今天早上无法展开sysout。在浪费了几个小时之后,我发现我试图将System.out.println()放在方法外部。当我在一个方法中这样做时,一切都运行得很好。
我刚刚在Eclipse版本2019-06(4.12)中遇到了同样的问题。对我来说Project clean解决了这个问题