如何修复Eclipse/Android安装?图形XML编辑器中的PNG加载问题

如何修复Eclipse/Android安装?图形XML编辑器中的PNG加载问题,android,xml,eclipse,android-layout,adt,Android,Xml,Eclipse,Android Layout,Adt,有相当一段时间,我的带有Android插件的Eclipse环境运行得很顺利。在软件更新过程中应用的更新的某个地方,它崩溃了。开始出现的第一个问题是,在运行Android插件图形编辑器以编辑布局文件时,“按钮”表单小部件图形丢失。我在错误日志中得到以下相关错误: !MESSAGE voice_recog.xml: android.webkit.WebView !MESSAGE main_new.xml: Failed lot load /Developer/android-sdk-mac_x86-

有相当一段时间,我的带有Android插件的Eclipse环境运行得很顺利。在软件更新过程中应用的更新的某个地方,它崩溃了。开始出现的第一个问题是,在运行Android插件图形编辑器以编辑布局文件时,“按钮”表单小部件图形丢失。我在错误日志中得到以下相关错误:

!MESSAGE voice_recog.xml: android.webkit.WebView
!MESSAGE main_new.xml: Failed lot load /Developer/android-sdk-mac_x86-1.5_r3/platforms/android-11/data/res/drawable-hdpi/btn_default_normal.9.png
!STACK 0
javax.imageio.IIOException: Error reading PNG metadata
我在硬盘上找到了png文件,并从Finder启动了图像查看器。它显示无误。我不知道为什么IDE在将其加载到图形编辑器时遇到问题。如果查看本文末尾的详细错误日志转储,您将看到发生的异常是一个java.io.EOFException(“由:java.io.EOFException引起”)

我注意到其中一个更新在我的硬盘上安装了Android-12,IDE正在Android-11目录中寻找PNG。但是,正如我前面所说的,该文件确实存在于错误消息中显示的Android-11路径中。我只是指出这一点,以防它可能表明我的设置中存在其他问题

注意:我尝试将图形布局编辑器切换到不同的设备,从“3.7英寸WVGA”切换到其他几个设备,我得到了比以前更多的PNG文件加载错误(更多),还有一个ClassCast异常。我还尝试将Android平台从3.0切换到我的目标1.6,但这也没有帮助。现在加载PNG文件的代码好像有什么问题。我不希望完全重新安装Eclipse和ADT,特别是因为我可能会回到同一个故障点,所以如果有人遇到这些问题并解决了,请回复

以下是PNG文件原始加载失败的完整错误日志跟踪:

!ENTRY com.android.ide.eclipse.adt 4 0 2011-06-23 04:07:39.972
!MESSAGE web2voice_main_new.xml: Failed lot load /Developer/android-sdk-mac_x86-1.5_r3/platforms/android-11/data/res/drawable-hdpi/btn_default_normal.9.png
!STACK 0
javax.imageio.IIOException: Error reading PNG metadata
at com.sun.imageio.plugins.png.PNGImageReader.readMetadata(PNGImageReader.java:695)
at com.sun.imageio.plugins.png.PNGImageReader.readImage(PNGImageReader.java:1314)
at com.sun.imageio.plugins.png.PNGImageReader.read(PNGImageReader.java:1601)
at javax.imageio.ImageIO.read(ImageIO.java:1400)
at javax.imageio.ImageIO.read(ImageIO.java:1322)
at com.android.ninepatch.GraphicsUtilities.loadCompatibleImage(GraphicsUtilities.java:37)
at com.android.ninepatch.NinePatch.load(NinePatch.java:96)
at com.android.layoutlib.bridge.impl.ResourceHelper.getNinePatchDrawable(ResourceHelper.java:279)
at com.android.layoutlib.bridge.impl.ResourceHelper.getDrawable(ResourceHelper.java:190)
at com.android.layoutlib.bridge.android.BridgeResources.getDrawable(BridgeResources.java:162)
at android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173)
at android.graphics.drawable.Drawable.createFromXmlInner(Drawable.java:832)
at android.graphics.drawable.Drawable.createFromXml(Drawable.java:769)
at com.android.layoutlib.bridge.impl.ResourceHelper.getDrawable(ResourceHelper.java:214)
at com.android.layoutlib.bridge.android.BridgeTypedArray.getDrawable(BridgeTypedArray.java:693)
at android.view.View.<init>(View.java:2471)
at android.widget.TextView.<init>(TextView.java:368)
at android.widget.Button.<init>(Button.java:108)
at android.widget.Button.<init>(Button.java:104)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:501)
at android.view.LayoutInflater.createView(LayoutInflater.java:576)
at com.android.layoutlib.bridge.android.BridgeInflater.onCreateView(BridgeInflater.java:83)
at android.view.LayoutInflater.onCreateView(LayoutInflater.java:644)
at android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:669)
at com.android.layoutlib.bridge.android.BridgeInflater.createViewFromTag(BridgeInflater.java:128)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:76)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:702)
at android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:79)
at android.view.LayoutInflater.rInflate(LayoutInflater.java:702)
at android.view.LayoutInflater.inflate(LayoutInflater.java:479)
at android.view.LayoutInflater.inflate(LayoutInflater.java:367)
at com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate(RenderSessionImpl.java:315)
at com.android.layoutlib.bridge.Bridge.createSession(Bridge.java:314)
at com.android.ide.common.rendering.LayoutLibrary.createSession(LayoutLibrary.java:324)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1510)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1347)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1078)
at com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.activated(GraphicalEditorPart.java:904)
at com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditor.pageChange(LayoutEditor.java:403)
at org.eclipse.ui.part.MultiPageEditorPart$2.widgetSelected(MultiPageEditorPart.java:290)
at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3783)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1398)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1383)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1195)
at org.eclipse.swt.custom.CTabFolder.setSelection(CTabFolder.java:2743)
at org.eclipse.swt.custom.CTabFolder.onMouse(CTabFolder.java:1429)
at org.eclipse.swt.custom.CTabFolder$1.handleEvent(CTabFolder.java:257)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Display.sendEvent(Display.java:3783)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1398)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1383)
at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1195)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3629)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3284)
at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
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:369)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
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:592)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
Caused by: java.io.EOFException
at javax.imageio.stream.ImageInputStreamImpl.readFully(ImageInputStreamImpl.java:330)
at java.io.DataInputStream.readUTF(DataInputStream.java:565)
at javax.imageio.stream.ImageInputStreamImpl.readUTF(ImageInputStreamImpl.java:309)
at com.sun.imageio.plugins.png.PNGImageReader.parse_iTXt_chunk(PNGImageReader.java:443)
at com.sun.imageio.plugins.png.PNGImageReader.readMetadata(PNGImageReader.java:652)
... 80 more
!条目com.android.ide.eclipse.adt 4 0 2011-06-23 04:07:39.972
!消息web2voice\u main\u new.xml:Failed lot load/Developer/android-sdk-mac\u x86-1.5\u r3/platforms/android-11/data/res/drawable-hdpi/btn\u default\u normal.9.png
!堆栈0
javax.imageio.IIOException:读取PNG元数据时出错
位于com.sun.imageio.plugins.png.PNGImageReader.readMetadata(PNGImageReader.java:695)
位于com.sun.imageio.plugins.png.PNGImageReader.readImage(PNGImageReader.java:1314)
位于com.sun.imageio.plugins.png.PNGImageReader.read(PNGImageReader.java:1601)
在javax.imageio.imageio.read(imageio.java:1400)中
在javax.imageio.imageio.read(imageio.java:1322)
在com.android.ninepatch.GraphicsUtilities.loadCompatibleImage上(GraphicsUtilities.java:37)
位于com.android.ninepatch.ninepatch.load(ninepatch.java:96)
位于com.android.layoutlib.bridge.impl.ResourceHelper.getNinePatchDrawable(ResourceHelper.java:279)
位于com.android.layoutlib.bridge.impl.ResourceHelper.getDrawable(ResourceHelper.java:190)
位于com.android.layoutlib.bridge.android.BridgeResources.getDrawable(BridgeResources.java:162)
在android.graphics.drawable.StateListDrawable.inflate(StateListDrawable.java:173)
位于android.graphics.drawable.drawable.createFromXmlInner(drawable.java:832)
位于android.graphics.drawable.drawable.createFromXml(drawable.java:769)
位于com.android.layoutlib.bridge.impl.ResourceHelper.getDrawable(ResourceHelper.java:214)
位于com.android.layoutlib.bridge.android.BridgeTypedArray.getDrawable(BridgeTypedArray.java:693)
在android.view.view.(view.java:2471)
位于android.widget.TextView。(TextView.java:368)
在android.widget.Button.(Button.java:108)
在android.widget.Button.(Button.java:104)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:501)
位于android.view.LayoutInflater.createView(LayoutInflater.java:576)
位于com.android.layoutlib.bridge.android.BridgeInflater.onCreateView(BridgeInflater.java:83)
位于android.view.LayoutInflater.onCreateView(LayoutInflater.java:644)
位于android.view.LayoutInflater.createViewFromTag(LayoutInflater.java:669)
位于com.android.layoutlib.bridge.android.BridgeInflater.createViewFromTag(BridgeInflater.java:128)
在android.view.LayoutInflater_Delegate.rInflate(LayoutInflater_Delegate.java:76)中
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:702)
在android.view.LayoutInflater\u Delegate.rInflate(LayoutInflater\u Delegate.java:79)
位于android.view.LayoutInflater.rInflate(LayoutInflater.java:702)
在android.view.LayoutInflater.充气(LayoutInflater.java:479)
在android.view.LayoutInflater.充气(LayoutInflater.java:367)
在com.android.layoutlib.bridge.impl.RenderSessionImpl.inflate上(RenderSessionImpl.java:315)
位于com.android.layoutlib.bridge.bridge.createSession(bridge.java:314)
位于com.android.ide.common.rendering.layoutbrary.createSession(layoutbrary.java:324)
位于com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1510)
位于com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.renderWithBridge(GraphicalEditorPart.java:1347)
位于com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.recomputeLayout(GraphicalEditorPart.java:1078)
在com.android.ide.eclipse.adt.internal.editors.layout.gle2.GraphicalEditorPart.activated上(GraphicalEditorPart.java:904)
位于com.android.ide.eclipse.adt.internal.editors.layout.LayoutEditor.pageChange(LayoutEditor.java:403)
位于org.eclipse.ui.part.multiageeditorpart$2.widgetSelected(multiageeditorpart.java:290)
位于org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:234)
位于org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
位于org.eclipse.swt.widgets.Display.sendEvent(Display.java:3783)
位于org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1375)
位于org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1398)
在