2010-01-15 72 views
0

對於我來說,我無法理解爲什麼向MainScreen添加連接字符串會導致BB模擬器拋出異常。如果我運行有以下控制一個非常簡單的問候程序,一切都很好:黑莓應用程序串連有什麼問題?

RichTextField rtfHello = new RichTextField("Hello There !!!");   
add(rtfItemDescription); 

但是,如果我添加一個連接字符串,整個應用程序中斷:

String MyName = "John Doe"; 
RichTextField rtfHello = new RichTextField("Hello There !!!" + MyName);   
add(rtfItemDescription); 

所以我在做什麼錯?爲什麼模擬器會爲第二個例子拋出異常?

+0

什麼異常被拋出? – roryf 2010-01-19 15:45:47

+0

事實上,沒有例外的細節,這很難回答。 – 2010-01-19 16:36:36

+0

「Hello There」+ myName會導致運行時字符串連接,除非您的Eclipse正在生成真實的和現代的Java代碼,而BB5/6/7需要使用StringBuffer的上世紀(literall)Java ME,否則就沒問題。您必須首先確保您的項目構建屬性已設置爲Java編譯器 - >源級別1.3或1.4(在響應之前搜索此主題!)。這已經足夠了,但顯然在2013年3月軟件升級到Eclipse後,這甚至不能解決問題,爲此我仍在尋找解決方案。 – idarwin 2013-03-24 23:33:07

回答

0

不知道它爲什麼會炸燬(但我不是黑莓/ java開發者)。您只是嘗試:

String MyName = "John Doe"; 
String HelloString = "Hello There !!!"; 
RichTextField rtfHello = new RichTextField(HelloString.concat(MyName));   
add(rtfItemDescription); 

或者乾脆,

String MyName = "John Doe"; 
RichTextField rtfHello = new RichTextField("Hello There!!!".concat(MyName));   
add(rtfItemDescription); 
+0

嘗試連接'Char'時沒有工作。我相信這是因爲OS 7.1及以下版本使用Java ME。 – Doomsknight 2012-02-17 16:19:34

0

我不認爲問題是字符串連接。 可以提供更多的信息,比如你正在得到什麼異常。

+0

它看起來像當我在我的黑莓項目中使用任何字符串連接(使用eclipse)時,打包過程找不到類StringBuilder的定義。該項目默認爲jdk 1.4。直到1.5版本才引入StringBuilder,因此試圖運行代碼將產生「找不到類定義」的錯誤消息。所以這是我爲什麼看到我的錯誤的猜測。 – sexitrainer 2010-01-20 15:30:17

1

看起來像當我在我的黑莓項目中使用任何字符串連接(使用eclipse)時,打包過程找不到類StringBuilder的定義。該項目默認爲jdk 1.4。直到1.5版本才引入StringBuilder,因此試圖運行代碼將產生「找不到類定義」的錯誤消息。所以這是我爲什麼看到我的錯誤的猜測。 - sexitrainer 1月20日15:30

這是因爲StringBuilder不是J2ME的一部分。在爲移動設備編程時,您將無法使用它。

2

對於Blackberry中的字符串連接嘗試使用StringBuffer類。 StringBuffer比String快,因爲它是可變的。

+0

似乎做的伎倆:)'StringBuffer str =「」; str.append(MyString的);' – Doomsknight 2012-02-17 16:17:52

1

試試這個

String MyName = "John Doe"; 
    RichTextField rtfHello = new RichTextField("Hello There !!!" + MyName);   
    add(rtfHello);