我想为"Nokia/Series60E3"设备编译J2ME波兰语示例应用程序"Blank"。我收到编译错误。我做错了什么?
似乎有父对象的访问私有属性,因此无法编译。如果我尝试为"通用/任何电话"设备编译它,它可以正常工作。
d:Program Files (x86)J2ME-Polishsamplesblank>ant j2mepolish
Buildfile: d:Program Files (x86)J2ME-Polishsamplesblankbuild.xml
init:
j2mepolish:
[j2mepolish] J2ME Polish 2.4 (2013-08-27) (GPL License)
[j2mepolish] Loading device database...
[j2mepolish] Last build was interrupted or failed, now clearing work directory...
[j2mepolish] using locale [en_US]...
[j2mepolish] assembling resources for device [Nokia/Series60E3].
[j2mepolish] preprocessing for device [Nokia/Series60E3].
[j2mepolish] processing locale code...
[j2mepolish] Warning: unable to resolve path to API "securityapi". If this leads to problems, please register this API in [apis.xml].
[j2mepolish] compiling for device [Nokia/Series60E3].
[j2mepolish-javac-Nokia/Series60E3] warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
[j2mepolish-javac-Nokia/Series60E3] Compiling 595 source files to d:Program Files (x86)J2ME-PolishsamplesblankbuildrealNokiaSeries60E3en_USclasses
[javac] Internal J2ME Polish class: d:Program Files (x86)J2ME-PolishsamplesblankbuildrealNokiaSeries60E3en_USsourcedeenoughpolishuiSourcedLazyContainer.
[javac] symbol : variable lastPointerPressY
[javac] location: class de.enough.polish.ui.SourcedLazyContainer
[javac] this.lastPointerPressY = this.currentPointerDragY;
[javac] ^
[javac] Internal J2ME Polish class: d:Program Files (x86)J2ME-PolishsamplesblankbuildrealNokiaSeries60E3en_USsourcedeenoughpolishuiSourcedLazyContainer.
[javac] symbol : variable lastPointerPressYOffset
[javac] location: class de.enough.polish.ui.SourcedLazyContainer
[javac] this.lastPointerPressYOffset = newOffset;
[javac] ^
[javac] Internal J2ME Polish class: d:Program Files (x86)J2ME-PolishsamplesblankbuildrealNokiaSeries60E3en_USsourcedeenoughpolishuiSourcedLazyContainer.
[javac] symbol : variable lastPointerPressY
[javac] location: class de.enough.polish.ui.SourcedLazyContainer
[javac] this.lastPointerPressY = this.currentPointerDragY;
[javac] ^
[javac] Internal J2ME Polish class: d:Program Files (x86)J2ME-PolishsamplesblankbuildrealNokiaSeries60E3en_USsourcedeenoughpolishuiSourcedLazyContainer.
[javac] symbol : variable lastPointerPressYOffset
[javac] location: class de.enough.polish.ui.SourcedLazyContainer
[javac] this.lastPointerPressYOffset = newOffset;
[javac] ^
[javac] Note: Some input files use or override a deprecated API.
[javac] Note: Recompile with -Xlint:deprecation for details.
[javac] 4 errors
[javac] An internal class of J2ME Polish could not be compiled. Please try a clean rebuild by either calling "ant clean j2mepolish" or by removing the working director
E-Polishsamplesblankbuildreal".
[javac] If an API-class was not found, you might need to define where to find the device-APIs. Following classpath has been used: [d:Program Files (x86)J2ME-Polishi
les (x86)J2ME-Polishimportcldc-1.1.jar;d:Program Files (x86)J2ME-Polishimportmidp-2.0.jar;d:/Program Files (x86)/J2ME-Polish/import/nokia-ui.jar;d:/Program Files (x
jar;d:/Program Files (x86)/J2ME-Polish/import/btapi.jar;d:/Program Files (x86)/J2ME-Polish/import/m3g.jar;d:/Program Files (x86)/J2ME-Polish/import/pdaapi.jar;d:/Program F
/jsr172.jar;d:/Program Files (x86)/J2ME-Polish/import/jsr180.jar;d:/Program Files (x86)/J2ME-Polish/import/m2g.jar].
BUILD FAILED
d:Program Files (x86)J2ME-Polishsamplesblankbuild.xml:67: Unable to compile source code for device [Nokia/Series60E3]: Compile failed; see the compiler error output f
似乎是SourcedLazyContainer类中的一个错误。它们引用 lastPointerPressY 和 lastPointerPressYOffset 字段,这些字段仅在设备具有指针事件时才可用。它们在 Container 类中定义如下:
//#ifdef polish.hasPointerEvents
/** vertical pointer position when it was pressed the last time */
protected int lastPointerPressY;
/** scrolloffset when this container was pressed the last time */
protected int lastPointerPressYOffset;
/** time in ms when this container was pressed the last time */
protected long lastPointerPressTime;
//#endif
由于目标设备不具有此功能,因此未定义这些字段。对于通用/AnyPhone,此功能已定义,因此,构建成功。您可以尝试将"hasPointerEvents"功能添加到您的设备.xml/自定义设备.xml文件中,或者在 ant 目标中设置 polish.hasPointerEvents 属性。