When I drag a "Plain Text" field over to my WYSIWYG editor in Eclipse for Android 4.1 I get a Java crash - How do I fix this?
Asked Answered
K

3

5

I'm on a Mac with the latest Java installed. I have Eclipse 4.2.0 installed and just downloaded Jelly Bean 4.1 (API 16) SDK. Everything is up to date.

I start a new project and use all of the default templates and values. I just call my app something simple like "MyApp".

When I drag a button over from the Toolbox to the WYSIWYG editor, the button shows up fine, I can edit the XML and everything is fine, etc etc.

But when I drag over a Plain Text box I get the following Java error and my entire WYSIWYG editor goes grey. The only way I can get it back to the way it was is if I delete the code from the XML and restart Eclipse. If I paste the code back in, the error comes back.

Here is the error:

java.util.LinkedHashMap.eldest()Ljava/util/Map$Entry;
Exception details are logged in Window > Show View > Error Log

And here is the code that is causing it:

<EditText
    android:id="@+id/editText1"
    android:inputType="text"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignTop="@+id/button1"
    android:layout_marginLeft="55dp"
    android:ems="10"
    android:hint="@string/hello_world" >

    <requestFocus />
</EditText>

I understand Jelly Bean is brand new today, but does anyone have any ideas on what may be going on here?

Can anyone else repro this problem?

By the way, I DO NOT get a crash with other text field types, like Password, Person Name, etc. Only with Plain Text.

EDIT:

Here's the stack trace from Eclipse:

java.lang.NoSuchMethodError: java.util.LinkedHashMap.eldest()Ljava/util/Map$Entry;
at android.util.LruCache.trimToSize(LruCache.java:206)
at android.util.LruCache.evictAll(LruCache.java:306)
at android.widget.SpellChecker.resetSession(SpellChecker.java:141)
at android.widget.SpellChecker.setLocale(SpellChecker.java:147)
at android.widget.SpellChecker.<init>(SpellChecker.java:112)
at android.widget.Editor.updateSpellCheckSpans(Editor.java:461)
at android.widget.Editor.onAttachedToWindow(Editor.java:212)
at android.widget.TextView.onAttachedToWindow(TextView.java:4455)
at android.view.View.dispatchAttachedToWindow(View.java:11755)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2424)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2424)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2424)
at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:2424)
at android.view.AttachInfo_Accessor.setAttachInfo(AttachInfo_Accessor.java:37)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:329)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:331)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:325)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.RenderService.createRenderSession(RenderService.java:372)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1640)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1391)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.onXmlModelChanged(GraphicalEditorPart.java:1353)
at com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditorDelegate.delegateXmlModelChanged(LayoutEditorDelegate.java:395)
at com.android.ide.eclipse.adt.internal.editors.common.CommonXmlEditor.xmlModelChanged(CommonXmlEditor.java:328)
at com.android.ide.eclipse.adt.internal.editors.AndroidXmlEditor$XmlModelStateListener.modelChanged(AndroidXmlEditor.java:1610)
at com.android.ide.eclipse.adt.internal.editors.AndroidXmlEditor.wrapEditXmlModel(AndroidXmlEditor.java:1084)
at com.android.ide.eclipse.adt.internal.editors.AndroidXmlEditor.wrapUndoEditXmlModel(AndroidXmlEditor.java:1160)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.MoveGesture.drop(MoveGesture.java:393)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GestureManager$CanvasDropListener.drop(GestureManager.java:652)
at org.eclipse.swt.dnd.DNDListener.handleEvent(DNDListener.java:90)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4134)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1458)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1481)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1466)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1271)
at org.eclipse.swt.dnd.DropTarget.drop(DropTarget.java:726)
at org.eclipse.swt.dnd.DropTarget.performDragOperation(DropTarget.java:740)
at org.eclipse.swt.dnd.DropTarget.dropTargetProc(DropTarget.java:454)
at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
at org.eclipse.swt.internal.cocoa.NSView.dragImage(NSView.java:150)
at org.eclipse.swt.dnd.DragSource.drag(DragSource.java:397)
at org.eclipse.swt.dnd.DragSource$1.handleEvent(DragSource.java:218)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4134)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1458)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1481)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1466)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1271)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3980)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3619)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1022)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:916)
at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:86)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:585)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:540)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:353)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:180)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:629)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:584)
at org.eclipse.equinox.launcher.Main.run(Main.java:1438)

and here's my session info:

eclipse.buildId=I20120608-1400
java.version=1.6.0_33
java.vendor=Apple Inc.
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
Framework arguments:  -keyring /Users/ethanallen/.eclipse_keyring -showlocation
Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -keyring /Users/ethanallen/.eclipse_keyring -showlocation
Klina answered 28/6, 2012 at 0:54 Comment(5)
so... did you try it with SDK 15 and did it work ok then?Wriest
Yes, it works fine with SDK 15. I'd like to program against the latest SDK though, which is 16.Klina
4.1 was released today so it might be a small bug... I'm sure it'll get fixed within a week or so. I suggest you report a bug here: source.android.com/source/report-bugs.htmlWriest
Don't forget to answer your question with the response you get... because I'm sure other people will have the same problem as you (eventually, at least). :)Wriest
It might be a good idea to link to the bug in a comment too :). I'd be curious to follow up on it...Wriest
K
2

Confirmed bug: http://code.google.com/p/android/issues/detail?id=33789

Klina answered 4/7, 2012 at 0:46 Comment(0)
S
8

I think you may need to add the following to your EditText (until the tools are updated for the newest API to solve this bug).

 android:inputType="textNoSuggestions"

see my response here: https://mcmap.net/q/460812/-exception-in-loading-layout-java-util-linkedhashmap-eldest-ljava-util-map-entry

Senn answered 30/6, 2012 at 18:46 Comment(0)
K
2

Confirmed bug: http://code.google.com/p/android/issues/detail?id=33789

Klina answered 4/7, 2012 at 0:46 Comment(0)
S
1

I test the textNoSuggestions but it doesn't work.

But, when I set the:

android:inputType = "textPersonName"

It works well! Please try it.

Suavity answered 4/7, 2012 at 13:24 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.