我开发了一个j2me应用程序,它运行良好。
在我的应用程序中,我有build.xml,当我运行这个build.xml时,它生成了一个jar和jad文件。
但是这里构建失败,但是jar和jad已经创建,当我运行jad时,应用程序没有运行。
请帮助我如何在j2me中编写build.xml,以下是我的build.xml
<project name="DEMO" default="build" basedir=".">
<!-- set global properties for this build -->
<taskdef resource="antenna.properties" classpath="../antenna/antenna-bin-1.2.1-beta.jar" />
<property name="lib" location="../lib" />
<property name="program_name" value="DEMO" />
<property name="package_name" value="DEMO" />
<property name="midp_home" value="C:/WTK2.5.2_01" />
<property name="wtk.home" value="C:/WTK2.5.2_01" />
<property name="wtk.midp.version" value="2.0" />
<property name="wtk.cldc.version" value="1.1" />
<path id="lib.path">
<fileset dir="${lib}">
<include name="LWUIT.jar"/>
</fileset>
</path>
<property name="src" value="src" />
<property name="res" value="res" />
<property name="build" value="build" />
<property name="dist" value="dist" />
<!--Create the build directory structure used by compile and dist-->
<target name="init">
<delete dir="${build}" />
<delete dir="${dist}" />
<mkdir dir="${build}" />
<mkdir dir="${dist}" />
<mkdir dir="${build}/classes" />
</target>
<!-- Compile Source -->
<target name="compile" depends="init">
<wtkbuild srcdir="src" destdir="${build}/classes" preverify="false">
<classpath refid="lib.path"/>
</wtkbuild>
<unjar src="../lib/LWUIT.jar" dest="${build}/classes" />
</target>
<!-- Creat build and Preverify -->
<target name="package" depends="compile" >
<wtkjad jadfile="${dist}${program_name}.jad" manifest="${dist}/MANIFEST.MF"
jarfile="${dist}${program_name}.jar" name="DEMO"
vendor="xyz" version="1.2">
<midlet name="DEMO" icon="/i.png" class="MM" />
<attribute name="endpoint"
value="http://localhost/j2meservice" />
<attribute name="MicroEdition-Configuration" value="CLDC-1.1"/>
<attribute name="MicroEdition-Profile" value=" MIDP-2.0"/>
<attribute name="MIDlet-Description" value=" Smart Phones"/>
<attribute name="devicetype" value="bb" />
</wtkjad>
<wtkpackage jarfile="${dist}/${program_name}.jar"
jadfile="${dist}/${program_name}.jad" obfuscate="false"
preverify="false">
<fileset dir="${build}/classes" includes="**/*.class" />
<fileset dir="${res}" includes="**" />
</wtkpackage>
</target>
<target name="obfuscate" depends="package">
<wtkobfuscate jarfile="${dist}/${program_name}.jar"
jadfile="${dist}/${program_name}.jad" obfuscator="proguard" >
<argument value="-defaultpackage"/>
<argument value="-repackageclasses"/>
</wtkobfuscate>
</target>
<target name="preverify" depends="obfuscate">
<wtkpreverify jarfile="${dist}/${program_name}.jar" jadfile="${dist}/${program_name}.jad" >
</wtkpreverify>
</target>
<target name="build" depends="preverify">
</target>
<target name="run">
<exec executable="${midp_home}/bin/emulator">
<arg line="-Xdescriptor:${dist}/${program_name}.jad" />
</exec>
</target>
</project>
这是build.xml的输出
Buildfile: D:eclipse-pulsar-copy-workspaceDEMObuild.xml
init:
[delete] Deleting directory D:eclipse-pulsar-copy-workspaceDEMObuild
[delete] Deleting directory D:eclipse-pulsar-copy-workspaceDEMOdist
[mkdir] Created dir: D:eclipse-pulsar-copy-workspaceDEMObuild
[mkdir] Created dir: D:eclipse-pulsar-copy-workspaceDEMOdist
[mkdir] Created dir: D:eclipse-pulsar-copy-workspaceDEMObuildclasses
compile:
[wtkbuild] **************************************************************
[wtkbuild] * Antenna 1.2.1 initialized for project "DEMO" *
[wtkbuild] * Using "Sun Wireless Toolkit 2.5" (CLDC-1.1; MIDP-2.0) *
[wtkbuild] **************************************************************
[wtkbuild] Compiling 705 source files to D:eclipse-pulsar-copy-workspaceDEMObuildclasses
[wtkbuild] Note: Some input files use or override a deprecated API.
[wtkbuild] Note: Recompile with -Xlint:deprecation for details.
[unjar] Expanding: D:eclipse-pulsar-copy-workspacelibLWUIT.jar into D:eclipse-pulsar-copy-workspaceDEMObuildclasses
package:
[wtkjad] Creating JAD file D:eclipse-pulsar-copy-workspaceDEMOdistDEMO.jad
[wtkjad] Creating MANIFEST file D:eclipse-pulsar-copy-workspaceDEMOdistMANIFEST.MF
[wtkpackage] Building jar: D:eclipse-pulsar-copy-workspaceDEMOdistDEMO.jar
[wtkpackage] Updating JAD file D:eclipse-pulsar-copy-workspaceDEMOdistDEMO.jad
obfuscate:
[wtkobfuscate] Obfuscating D:eclipse-pulsar-copy-workspaceDEMOdistDEMO.jar with ProGuard
[wtkobfuscate] ProGuard, version 4.8
[wtkobfuscate] Reading input...
[wtkobfuscate] Reading program jar [D:eclipse-pulsar-copy-workspaceDEMOdistDEMO.jar]
[wtkobfuscate] Reading library jar [C:WTK2.5.2_01libcldcapi11.jar]
[wtkobfuscate] Reading library jar [C:WTK2.5.2_01libmidpapi20.jar]
[wtkobfuscate] Initializing...
[wtkobfuscate] Warning: com.sun.lwuit.M3G: can't find referenced class javax.microedition.m3g.Graphics3D
[wtkobfuscate] Warning: com.sun.lwuit.M3G: can't find referenced class javax.microedition.m3g.Graphics3D
[wtkobfuscate] Warning: com.sun.lwuit.M3G: can't find referenced class javax.microedition.m3g.Graphics3D
[wtkobfuscate] Warning: com.sun.lwuit.M3G: can't find referenced class javax.microedition.m3g.Graphics3D
[wtkobfuscate] Warning: com.sun.lwuit.M3G: can't find referenced class javax.microedition.m3g.Image2D
[wtkobfuscate] Warning: com.sun.lwuit.M3G: can't find referenced class javax.microedition.m3g.Image2D
[wtkobfuscate] Warning: com.sun.lwuit.M3G: can't find referenced class javax.microedition.m3g.Graphics3D
[wtkobfuscate] Warning: com.sun.lwuit.M3G: can't find referenced class javax.microedition.m3g.Graphics3D
[wtkobfuscate] Warning: com.sun.lwuit.M3G: can't find referenced class javax.microedition.m3g.Image2D
[wtkobfuscate] Warning: com.sun.lwuit.M3G$Callback: can't find referenced class javax.microedition.m3g.Graphics3D
[wtkobfuscate] Warning: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find referenced class javax.microedition.media.control.VideoControl
[wtkobfuscate] Warning: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find referenced class javax.microedition.media.control.VideoControl
[wtkobfuscate] Warning: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find referenced class javax.microedition.media.control.VideoControl
[wtkobfuscate] Warning: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find referenced class javax.microedition.media.control.VideoControl
[wtkobfuscate] Warning: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find referenced class javax.microedition.media.control.VideoControl
[wtkobfuscate] Warning: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find referenced class javax.microedition.media.control.VideoControl
[wtkobfuscate] Warning: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find referenced class javax.microedition.media.control.VideoControl
[wtkobfuscate] Warning: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find referenced class javax.microedition.media.control.VideoControl
[wtkobfuscate] Warning: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find referenced class javax.microedition.media.control.VideoControl
[wtkobfuscate] Warning: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find referenced class javax.microedition.media.control.VideoControl
[wtkobfuscate] Warning: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find referenced class javax.microedition.media.control.VideoControl
[wtkobfuscate] Warning: com.sun.lwuit.util.Log: can't find referenced class javax.microedition.io.file.FileSystemRegistry
[wtkobfuscate] Warning: com.sun.lwuit.util.Log: can't find referenced class javax.microedition.io.file.FileConnection
[wtkobfuscate] Warning: com.sun.lwuit.util.Log: can't find referenced class javax.microedition.io.file.FileConnection
[wtkobfuscate] Warning: com.sun.lwuit.util.Log: can't find referenced class javax.microedition.io.file.FileConnection
[wtkobfuscate] Warning: com.sun.lwuit.util.Log: can't find referenced class javax.microedition.io.file.FileConnection
[wtkobfuscate] Warning: com.sun.lwuit.util.Log: can't find referenced class javax.microedition.io.file.FileConnection
[wtkobfuscate] Warning: com.sun.lwuit.util.Log: can't find referenced class javax.microedition.io.file.FileConnection
[wtkobfuscate] Warning: com.sun.lwuit.util.Log: can't find referenced class javax.microedition.io.file.FileSystemRegistry
[wtkobfuscate] Warning: com.sun.lwuit.util.Log: can't find referenced class javax.microedition.io.file.FileConnection
[wtkobfuscate] Warning: com.sun.lwuit.util.Log: can't find referenced class javax.microedition.io.file.FileConnection
[wtkobfuscate] Note: com.sun.lwuit.M3G: can't find dynamically referenced class javax.microedition.m3g.Graphics3D
[wtkobfuscate] Note: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find dynamically referenced class com.siemens.mp.game.Light
[wtkobfuscate] Note: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find dynamically referenced class com.motorola.phonebook.PhoneBookRecord
[wtkobfuscate] Note: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find dynamically referenced class com.nokia.mid.ui.FullCanvas
[wtkobfuscate] Note: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find dynamically referenced class net.rim.device.api.system.Application
[wtkobfuscate] Note: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find dynamically referenced class com.mot.iden.util.Base64
[wtkobfuscate] Note: com.sun.lwuit.impl.midp.GameCanvasImplementation: can't find dynamically referenced class mmpp.media.MediaPlayer
[wtkobfuscate] Note: there were 7 unresolved dynamic references to classes or interfaces.
[wtkobfuscate] Warning: there were 31 unresolved references to classes or interfaces.
[wtkobfuscate] You should check if you need to specify additional program jars.
[wtkobfuscate] You may need to specify additional library jars (using '-libraryjars').
[wtkobfuscate] java.io.IOException: Please correct the above warnings first.
[wtkobfuscate] at proguard.Initializer.execute(Initializer.java:321)
[wtkobfuscate] at proguard.ProGuard.initialize(ProGuard.java:212)
[wtkobfuscate] at proguard.ProGuard.execute(ProGuard.java:87)
[wtkobfuscate] at proguard.ProGuard.main(ProGuard.java:493)
BUILD FAILED
D:eclipse-pulsar-copy-workspaceDEMObuild.xml:75: Obfuscation failed (result=1)
Total time: 28 seconds
如何成功构建它?
thanks and regards
这与build.xml无关。您链接的是LWUIT.jar,它是通用库,而不是您想要的LWUIT的MIDP版本。