Midlet移植BlackBerry 第三方jar包处理
?
Midlet项目中有第三方jar包,或者需要将代码打成jar包。正常将jar加到编译路径,Order and Export 中勾选上引入的jar,package 项目会失败
错误代码形如
com.xx.xx: Error!: Missing stack map in: equals at label: 119
出现这个错误的原因是引入的jar包没有校验,使用Blackberry自带的preverify命令即可解决,
如果是使用Eclipse plugin for BlackBerry,可以再eclipse的如下目录下找到
${Eclipse_Root}\plugins\net.rim.ejde.componentpack5.0.0_5.0.0.36\components\bin 这个命令。或者通过互联网搜索这个软件。
我写了个demo如下
preverify -classpath E:\eclipse-SDK-3.7.1-win32\eclipse\plugins\net.rim.ejde.componentpack5.0.0_5.0.0.36\components\lib\net_rim_api.jar?
E:\eclipse-SDK-3.7.1-win32\eclipse\plugins\net.rim.ejde.componentpack5.0.0_5.0.0.36\components\bin\target.jar
后面的target.jar是需要检验的目标jar包,成功后会生成在 bin下 生成output/target。jar 放到blackberry项目编译路径下就解决问题了。
如果jar包之间有依赖关系如 A.jar依赖于B.jar 校验A.jar的时候,依赖类库需要以分号分开,举例如下
先校验B.jar
preverify -classpath E:\eclipse-SDK-3.7.1-win32\eclipse\plugins\net.rim.ejde.componentpack5.0.0_5.0.0.36\components\lib\net_rim_api.jar;E:\eclipse-SDK-3.7.1-win32\eclipse\plugins\net.rim.ejde.componentpack5.0.0_5.0.0.36\components\bin\output\B.jar
? ? ? ?然后校验A.jar
E:\eclipse-SDK-3.7.1-win32\eclipse\plugins\net.rim.ejde.componentpack5.0.0_5.0.0.36\components\bin\A.jar
?
? ? ? ? ?end