使用java.lang.NoSuchFieldError创建UnfolingMap实例:质量错误
我尝试使用UnfolingMap(v0.9.6)创建PApplet(处理)。不幸的是,我得到了java.lang.NoSuchFieldError:这一行的质量错误:map=new unfolingmap(这是p1)。如果是这样,原因可能是什么使用java.lang.NoSuchFieldError创建UnfolingMap实例:质量错误,java,processing,Java,Processing,我尝试使用UnfolingMap(v0.9.6)创建PApplet(处理)。不幸的是,我得到了java.lang.NoSuchFieldError:这一行的质量错误:map=new unfolingmap(这是p1)。如果是这样,原因可能是什么 import de.fhpotsdam.unfolding.UnfoldingMap; import de.fhpotsdam.unfolding.providers.AbstractMapProvider; import de.fhpotsdam.un
import de.fhpotsdam.unfolding.UnfoldingMap;
import de.fhpotsdam.unfolding.providers.AbstractMapProvider;
import de.fhpotsdam.unfolding.providers.Google;
import de.fhpotsdam.unfolding.utils.MapUtils;
import processing.core.PApplet;
public class MyPApplet2 extends PApplet{
UnfoldingMap map;
public static void main(String[] args) {
PApplet.main(new String[] {MyPApplet2.class.getName() });
}
public void settings() {
size(400, 400, P2D);
}
public void setup() {
AbstractMapProvider p1 = new Google.GoogleTerrainProvider();
map = new UnfoldingMap(this, p1);
MapUtils.createDefaultEventDispatcher(this, map);
}
public void draw() {
map.draw();
}
}
我收到以下错误:
Exception in thread "Thread-3" java.lang.RuntimeException: java.lang.NoSuchFieldError: quality
at processing.opengl.PSurfaceJOGL$2.run(PSurfaceJOGL.java:443)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoSuchFieldError: quality
at de.fhpotsdam.unfolding.mapdisplay.OpenGLMapDisplay.<init>(Unknown Source)
at de.fhpotsdam.unfolding.mapdisplay.MapDisplayFactory.getMapDisplay(Unknown Source)
at de.fhpotsdam.unfolding.UnfoldingMap.<init>(Unknown Source)
at de.fhpotsdam.unfolding.UnfoldingMap.<init>(Unknown Source)
at module3.MyPApplet2.setup(MyPApplet2.java:23)
at processing.core.PApplet.handleDraw(PApplet.java:2374)
at processing.opengl.PSurfaceJOGL$DrawListener.display(PSurfaceJOGL.java:731)
at jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
at jogamp.opengl.GLDrawableHelper.display(GLDrawableHelper.java:674)
at jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:443)
at jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
at jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
at com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:759)
at com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:81)
at com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:452)
at com.jogamp.opengl.util.FPSAnimator$MainTask.run(FPSAnimator.java:178)
at java.util.TimerThread.mainLoop(Unknown Source)
at java.util.TimerThread.run(Unknown Source)
线程“thread-3”java.lang.RuntimeException:java.lang.NoSuchFieldError:quality中的异常
在processing.opengl.PSurfaceJOGL$2.run处(PSurfaceJOGL.java:443)
位于java.lang.Thread.run(未知源)
原因:java.lang.NoSuchFieldError:质量
在de.fhpotsdam.unfoling.mapsdisplay.openglmapsdisplay。(未知源)
在de.fhpotsdam.unfoling.mapdisplay.MapDisplayFactory.getMapDisplay(未知源)
在波茨坦广场,展开。展开地图。(未知来源)
在波茨坦广场,展开。展开地图。(未知来源)
在module3.MyPApplet2.setup(MyPApplet2.java:23)
位于processing.core.PApplet.handleDraw(PApplet.java:2374)
在processing.opengl.PSurfaceJOGL$DrawListener.display(PSurfaceJOGL.java:731)
位于jogamp.opengl.GLDrawableHelper.displayImpl(GLDrawableHelper.java:692)
在jogamp.opengl.GLDrawableHelper.display上(GLDrawableHelper.java:674)
在jogamp.opengl.GLAutoDrawableBase$2.run(GLAutoDrawableBase.java:443)
在jogamp.opengl.GLDrawableHelper.invokeGLImpl(GLDrawableHelper.java:1293)
位于jogamp.opengl.GLDrawableHelper.invokeGL(GLDrawableHelper.java:1147)
位于com.jogamp.newt.opengl.GLWindow.display(GLWindow.java:759)
位于com.jogamp.opengl.util.AWTAnimatorImpl.display(AWTAnimatorImpl.java:81)
位于com.jogamp.opengl.util.AnimatorBase.display(AnimatorBase.java:452)
位于com.jogamp.opengl.util.FPSAnimator$mainstask.run(FPSAnimator.java:178)
位于java.util.TimerThread.mainLoop(未知源)
在java.util.TimerThread.run处(未知源)
引发此错误是因为我们更改了特定类的定义,并且没有重新编译引用该类的类
/**
* Creates a new full canvas map with the given ID.
*
* @param p
* The main applet.
* @param id
* The ID of this map.
*/
public UnfoldingMap(PApplet p, String id) {
this(p, id, 0, 0, p.width, p.height, true, false, null, null);
}
尝试使用类似以下内容:
AbstractMapProvider p1 = new Google.GoogleTerrainProvider();
settings();
map = new UnfoldingMap(this, 50, 50, 500, 350, p1);
谢谢你提供的信息。我怎样才能摆脱这个问题呢?如果我使用大小(800600)而不是大小(800600,P2D),它是有效的。此解决方案的缺点是,贴图不会粘贴到其在PApplet窗口中的位置,并且可能会超过给定的大小。