Blackberry 5.0 - Add reference to a Java Library Project

和自甴很熟 提交于 2019-11-29 15:29:53

Figured out answer myself. Publishing here in case someone stumbles upon this. Here are the steps:

  1. Create your library and export as JAR (or download the 3rd party JAR)
  2. Run preverify.exe on the JAR

    preverify.exe -verbose -classpath "C:/Program Files/Research In Motion/BlackBerry JDE 5.0.0/lib/net_rim_api.jar" jarname.jar

  3. If you are lucky, you won't run into any issues and you will be done. But I wasn't lucky enough. I got the below error

Error: No such file or directory. JAR file creation failed with error -1

There are two possible causes of this:

  • jar.exe is not added to your PATH. If so, add it (found in your JAVA installation directory) to PATH
  • cvfm or -cfm option on jar.exe fails to execute. I'm not aware of the reason but the way to fix this is to use -cf option, point to the .class files but don't use the manifest file. here is an
    example:

    "C:\Program Files\Java\jdk1.6.0_26\bin\jar.exe" -cf "output\json-1.0.jar" tmp12996/

tmp12996 contains the preverified .class files. You may run into different issues other than the one I've listed above.

  1. Once jar is created from above step, make sure that it's structure is as you anticipate. One way to check is to rename the .jar to .zip, unzip it and then check it. If it is not as you need, you can change the structure and then repack it (I wouldn't do any major changes though)

  2. Then add this newly built jar to your BlackBerry application as a reference i.e. add to Java Build Path in your eclipse and Check it in Order and Export window.

  3. That's it! You are good to go! Run you app!

You may face error indicating that the module contains verification errors when you try to run in the simulator. One possible cause of this issue is that your library (the original JAR) contains APIs that are not compatible with J2ME or BB JRE. You may not get a compiler error when you build your library independently as it is compiled against Java 1.4 (or whatever your version is). Best to figure the issue out is to move all your code into your BB App project and then build it. That will tell you all the issues upfront. You make the changes as required and then move the code back to the library. If you don't have source code for the library you are using (like a 3rd party library), you may be out of luck! Also remember that there could be other issues than what I've hit upon and solved.

I'm documenting this at length as it has taken an awful amount of time for me to figure all this out; and to say the least, was most frustrating!

I found another solution. If you get error -1 while preverifying your JAR file, just run your library application once. Because if you don't run the application, the deliverables folder will be empty. Make sure this folder is not empty.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!