在Eclipse中搭建好黑莓开发环境后,使用了快一周了,感觉还不错,想起之前的曲折,还是很有成就感的,呵呵。所以想把自己搭建的过程写下来,给同样和之前的我一样存在困惑的朋友们,希望能给大家一点帮助吧。
关于开发环境,我尝试过几个,直接用BlackBerry JDE的,Eclipse下的,还有NetBeans的,甚至还想过使用WTK。因为之前一直想把LWUIT运行在黑莓上,所以看过的环境搭建的文章基本上都是围绕LWUIT的。东一榔头西一棒槌的,最后终于发现很多评论说是LWUIT的运行速度是个问题,所以一下狠心——放弃。于是就把目标定在BlackBerry的环境搭建上。
但是黑莓的开发环境BlackBerry JDE真的很不好用,像我这种粗心大意的,写出来代码后,没有智能检测,结果肯定是BUG一堆。我不想挑起Eclipse和NetBeans的争论,个人的经验还是感觉Eclipse比较好用,配合BlackBerry JDE和JDWP,利用模拟器调试也很方便。我一般都是同时打开Eclipse、BlackBerry JDE、JDWP,还有黑莓开发文档,Eclipse用来写代码、编译以及调试,BlackBerry JDE用来看黑莓自带例子(呵呵,还得学习人家的代码啊)以及查看自己程序中都使用到了哪些敏感API(以便把这些代码用其他的方式实现,签名不是太贵,而是不容易买啊,要信用卡买……),JDWP用来启动模拟器。
上面这些都是一点使用的小经验,下面具体说下我搭建的过程。
其实也是根据网上的一篇文章来搭建的,作者是汪晶(Hoperun),原文地址没有办法找到了,因为我是下载的PDF,而且因为已经设置好了,自己也比较懒,做图片比较麻烦,所以就直接使用PDF中的图片了,作者如果觉得欠妥,我马上改过来。我基本上是按照上面的步骤设置的,只是软件的版本有些不同。
这里想先首先说明一下,我按照《BlackBerry应用程序开发者指南》第二章中的《使用Eclipse开发环境》设置,并不能成功,不过可能是我某个地方遗漏或搞错了吧,大家可以试试,成功的兄弟喊一声!
开始吧!
准备工具
1、 JDK 1.6.0_03。
2、 Eclipse 3.5。
3、 BlackBerry JDE 4.5.0。
4、 Bb-ant-tools-0.7。(最新版本请到http://sourceforge.net/projects/bb-ant-tools/files/)
环境搭建
一、安装JDK、BlackBerry JDE、Eclipse
听说JDK安装完后不用设置环境变量也可以正常运行,我还是乖乖地设置了,保险嘛,也费不了多少时间。下面是具体的内容:
CLASS_PATH
.;C:/Program Files/Java/jdk1.6.0_13/lib/tools.jar;
C:/Program Files/Java/jdk1.6.0_13/lib;
C:/Program Files/Java/jdk1.6.0_13/lib/dt.jar;
C:/Program Files/Java/jre6/lib;C:/Program Files/Java/jre6/lib/rt.jar
JAVA_HOME
C:/Program Files/Java/jdk1.6.0_13
Path
C:/Program Files/Java/jdk1.6.0_13/bin;C:/Program Files/Java/jre6/bin
Eclipse直接解压就可以使用,自己嫌麻烦,就没有安装语言包,学英语。
BlackBerry JDE 4.5.0直接安装就可以了,安装完成后在安装目录的docs/api目录下有文档,呵呵,很重要的东东。我的手机就是8800,安装完成后默认的模拟器是8300,我的手机是8800,所以还是比较习惯8800的界面,在安装目录下的simulator目录里面有个文件defaultSimulator.bat,是个启动fledge.exe(模拟器配置程序)的批处理文件,我将里面的8300全部改成8800。后来发现fledge.exe中可以直接选择手机型号,晕死~
二、Eclipse设置
1、Window->Preferences
(1)点击Java->Installed JREs,可以看到里面只有一个jre6项目。
点击Add,在对话框中选择Standard VM,然后Next,到下一步。
在JRE home项点Directory,选择JDK的安装目录下的jdk1.6.0_03目录。JRE name中填写一个标识你创建的JRE名称(我的是RIM JRE)。将JRE system libraries中的jar包全部删除,因为我们目标只是在黑莓的API中开发应用程序,写代码时这些包会干扰视线,通通和谐掉。然后点击Add External JARs…,在BlackBerry JDE 4.5.0安装目录下的lib文件夹中选择net_rim_api.jar,添加进JRE system libraries。
添加后点前面的小三角,开始设置Javadoc目录,如下图:
点Javadoc location,然后点击右面Javadoc Location…,在弹出来的对话框中点Browse…,选择BlackBerry JDE安装目录下的doc/api/目录,OK,然后Finish回到Installed JREs。可以看到RIM JREs在列表中,将其打钩,并且点击jre6,再点Remove将其移除。
JRE导入完成!
(2)点击Java->Compiler,将Compiler compliance level设置为1.4(具体原因不明,谁知道,喊一声)。其他的不要变,OK。
(3)点Java->Debug->Detail Formatters,点击Add,在Qualfield type name:中输入java.lang.String,下面Detal formatter code snippet:输入toString(),下面Show variable details 选择In detail pane only,OK完成。
(4)点Java->Debug,将Debugger timeout设置为15000,Launch timeout设置为200000,OK完成。
(5)点General->Workspace,去掉Build automatically,将后面两项打钩,OK完成。
注:1、上面的设置中的JDK、BlackBerry JDE安装路径要根据自己的实际路径设置。
2、因为是引用PDF中的图片,所以图片中的设置和我的设置不一样,不过这并不影响什么,大家照葫芦画瓢了。
2、创建工程
(1)点击File->New->Java Project,填入工程名(我的是HelloWorld),Contents选择创建一个新的工程,JRE选择使用一个特殊的JRE(我的是RIM JVM),其他的都是默认的就行。Next。
(2)在这一步,工程中的文件夹可以没有。不过这样整个工程会感觉很混乱,还是建议把不同的文件分类存放,例如src存放*.java,img存放图片,或者再建一个res文件夹存放其他资源文件,等等。
(3)在Order and Export中选中JRE System Library [RIM JVM],Finish。
3、在工程中导入bb-ant-tools
(1)右击工程名,选择New->Folder,文件夹名为lib,点击Finish。右击Finish,选择Import,点General->File System,然后Next。
(2)点Browse…,选择bb-ant-tools所在的目录,勾选右面的列表中的bb-ant-tools.jar,在Into folder中选择HelloWorld/lib,点Finish。
(4)工程中目录应该是下面这个样子的:
右击bb-ant-tools.jar,选择Build Path->Add to Build Path,之后在Referenced Libraries中会出现。
4、在工程中创建工程配置文件build.xml
右击工程名->New->File,文件名为Build.xml,向其中加入如下代码,其中红色部分是根据自己的JDK以及BlackBerry JDE的安装目录灵活改变的。
<?xml version="1.0" encoding="UTF-8"?>
<project name="HelloWorld" default="buildRIM" basedir=".">
<taskdef resource="bb-ant-defs.xml" classpath="lib/bb-ant-tools.jar" />
<property name="jdehome" value="D:/Program Files/Research In Motion/BlackBerry JDE 4.5.0" />
<property name="javahome" value="C:/Program Files/Java/jdk1.6.0_13" />
<property name="simulator" value="${jdehome}/simulator" />
<property name="bin" value="${jdehome}/bin" />
<property name="output" value=" HelloWorld " />
<property name="title" value=" HelloWorld " />
<property name="vendor" value="W.S" />
<property name="version" value="0.1" />
<property name="description" value="wilesilly`s Blackberry program" />
<target name="buildRIM" description="Composes RIM" depends="clean">
<rapc jdehome="${jdehome}" jdkhome="${javahome}" output="${output}">
<jdp title="${title}" vendor="${vendor}" version="${version}" description="${description}" runonstartup="false" type="cldc" />
<src>
<fileset dir="D:/workspace/HelloWorld">
<include name="**/*.java" />
<include name="resource/**/*.*" />
</fileset>
</src>
</rapc>
<copy todir="${simulator}" overwrite="true">
<fileset dir=".">
<include name="*.cod" />
<include name="*.debug" />
<include name="*.cso" />
</fileset>
</copy>
</target>
<target name="clean">
<delete>
<fileset dir="bin" includes="**/*.class" />
<fileset dir=".">
<include name="*.cod" />
<include name="*.cso" />
<include name="*debug" />
<include name="*.jad" />
<include name="*.jar" />
<include name="*.rapc" />
</fileset>
</delete>
</target>
</project>
具体都是什么含义,我也不是很清楚,但是jdehome就是BlackBerry JDE的安装目录,javahome是JDK的安装目录。还好有现成的,否则不会XML还不挂掉了?以后学吧,肯定有用。
(5)设置Builders
右击工程名->Properties。
New一个,选择Ant Builder,OK。
Name自己写一个,在Main标签中的Buildfile点Browse Workspace…,选择HelloWorld目录中的build.xml文件,OK。
在Targets标签中的During a “Clean”右面点击Set Targets,仅仅选择clean,OK,仍然OK。
将RIM_Builder上移,OK。
工程配置终于完成了,可以添加代码进工程了。首先写个最简单的HelloWorld.java。代码如下:
import net.rim.device.api.ui.UiApplication;
import net.rim.device.api.ui.container.MainScreen;
import net.rim.device.api.ui.Field;
import net.rim.device.api.ui.component.Dialog;
import net.rim.device.api.ui.component.LabelField;
import net.rim.device.api.ui.component.RichTextField;
public class HelloWorld extends UiApplication
{
public static void main(String[] args)
{
HelloWorld theApp = new HelloWorld();
theApp.enterEventDispatcher();
}
public HelloWorld()
{
pushScreen(new HelloWorldScreen());
}
}
final class HelloWorldScreen extends MainScreen
{
public HelloWorldScreen()
{
LabelField title = new LabelField("Hello World Demo" , LabelField.ELLIPSIS | LabelField.USE_ALL_WIDTH);
setTitle(title);
add(new RichTextField("Hello World!" ,Field.NON_FOCUSABLE));
}
public void close()
{
Dialog.alert("Goodbye!");
System.exit(0);
super.close();
}
}
保存后,可以右击工程名->Build Project或者Ctrl+B,Build一下,应该没有错误的。
这样,Eclipse以及工程的配置已经基本完成,配置文件可以拷贝一份,可能一用好多年,它一直带在身边,程序员版的双截棍。^_^
三、Eclipse调试
使用Eclipse调试黑莓程序,必须将JDWP程序打开,这样当在Eclipse中点击调试时,这个程序会自动启动模拟器。第一次调试的时候可能会提示*.debug文件找不到,别理它,直接点“Don`t ask this again”。
右击工程名->Debug as->Debug configuration,或者点击工具栏上那个甲壳虫图标右面的小三角选择Debug configuration。
在Remote Java Application上点右键,选择New。
Eclipse会自动配置好Debug,你只需按Debug就可以调试了。
运行结果: