2012-05-01 35 views
5

Tôi muốn nhập thư viện facebook cho blackberry 5.0 trở lên và không muốn nhập các thư viện đó cho 4.6 và 4.7.Một bản dựng cho hai phiên bản khác nhau (4.6.4.7 và 5.0 + ở trên) trong blackberry

Tôi cố gắng để sử dụng preprocessors cho 4.7 trở lên bằng cách làm theo dưới đây liên kết: http://smartfone-more.blogspot.in/2010/05/coding-for-multiple-blackberry-devices.html

hiện đang làm việc của nó tốt với JDE 4.7 nhưng không nhận được kết quả mong đợi cho 5.0. Hãy tìm mã dưới đây mà tôi đã cố gắng:

//#ifdef JDE_4_7_0 
import net.rim.device.api.ui.component.ButtonField; 
//#else 
import net.rim.device.api.ui.component.LabelField; 
//#endif 
import net.rim.device.api.ui.container.MainScreen; 


public class TestScreen extends MainScreen{ 

     TestScreen(){ 

       //#ifdef JDE_4_7_0 
       ButtonField btn = new ButtonField("Test Button"); 
       add(btn); 
       //#else 
       LabelField lbl1 = new LabelField("Test Label 1"); 

       add(lbl1); 
       //#endif 
     } 
} 

Theo mã tôi đang chờ đợi kết quả bằng văn bản trong phần khác cho 5.0 và nếu phần cho 4.7. Tôi đã kiểm tra nó trên thiết bị cũng như JDE cả.

Vui lòng trợ giúp.

+1

Bạn đang sử dụng JDE để xây dựng lần cuối?nếu như vậy bạn phải xây dựng nó một lần với cờ tiền xử lý để lấy tệp mã cho các liều thấp hơn. Lưu nó ở đâu đó. Và sau khi bạn phải loại bỏ cờ tiền xử lý từ các tùy chọn xây dựng JDE và xây dựng nó cho oses cao hơn –

+0

http://stackoverflow.com/questions/10445072/which-build-to-be-considered-for-use-when-a-preprocessor -is-used hãy xem bài đăng này quá – Yatin

Trả lời

3

Trước hết, thẻ JDE_4_7_0 là thẻ tùy chỉnh bạn nên xác định trong thuộc tính dự án BlackBerry -> tab "Biên dịch" -> bộ tiền xử lý xác định. Bạn có thể cho nó tên bạn muốn.

Thứ hai, trong tập tin nguồn của bạn, dòng đầu tiên (thậm chí trước khi khai gói) nên:

//#preprocess 

Sau đó, khi bạn muốn vô hiệu hóa nhập khẩu có điều kiện, quay trở lại với "tiền xử lý định nghĩa" tab và xóa mục nhập JDE_4_7_0. Điều đó sẽ làm cho trình biên dịch nhập mệnh đề #else. Các plugin BB cho eclipse không phát hiện hệ điều hành, nó là tất cả một tạo tác bạn nên kiểm soát.

EDIT:
Bạn sẽ kết thúc bằng hai bộ phân phôi, một cho 5.0+ và một cho 4.x. Các công cụ BBant cho phép bạn thực hiện quá trình biên dịch trong một bước, nhưng sản phẩm của trình biên dịch sẽ giống nhau. Thay vào đó, bạn có thể:

  • cố gắng bao gồm FacebookBlackBerrySDK-vx.x.x.jar và Log4B-vx.x.x.jar (đảm bảo chúng được xác minh trước) trong dự án 4.6. Tôi đã có thể bao gồm các lọ và biên dịch một dự án 4.5, nhưng nó không có nghĩa là bạn có thể sử dụng chúng mà không có lỗi *. Vì vậy, ...
  • Chỉ sử dụng chức năng Facebook trong OS 5.0 trở lên, bằng cách phát hiện nó trong thời gian chạy với DeviceInfo.getSoftwareVersion hoặc DeviceInfo.getPlatformVersion.

Sử dụng phương pháp này, bạn có thể có một ứng dụng tương thích với hơn 4.6 thiết bị và chỉ có hơn 5.0 ứng dụng sẽ sử dụng fb sdk.

* LƯU Ý: Tôi không biết tại sao facebook blackberry sdk đó được biên dịch cho 5.0. Có lẽ tác giả chỉ sử dụng hệ điều hành thấp hơn mà anh ta có trong máy phát triển của mình, người biết. Nhưng mà không thử nghiệm nó tôi không thể nhà nước nó là 4.5 tương thích, chỉ là bình là 4,5 compilable.

+0

OK .. @Mister Smith: có nghĩa là JDE_4_7_0 không được sử dụng để phát hiện OS – Yatin

+0

Sau đó, cách 1 có thể chuẩn bị chỉ một bản dựng cho 2 hệ điều hành khác nhau ... TRÊN VÀO THE LOWER KHÁC ... trong câu hỏi này người dùng muốn tạo một bản dựng cho 4.6 và phiên bản 5.0 và cao hơn cho gói faceboook ... vì gói facebook không được hỗ trợ trong 4.6 thì có thể sử dụng nó như thế nào cho cả hệ điều hành @Mister Smith: – Yatin

+1

Trong trường hợp bạn đang nói về SDK bb Facebook nguồn mở không chính thức, cả hai lọ (FacebookBlackBerrySDK-vx.xxjar và Log4B-v x.x.x.jar) có khả năng tương thích với hệ điều hành 4.5 mặc dù tác giả đã sử dụng 5.0. Nhưng nói chung, để biên dịch trong "một xây dựng", bạn nên sử dụng các công cụ bbant, hoặc người nào khác làm điều đó bằng tay chỉnh sửa các thuộc tính dự án. –

2

Thay đổi tên chỉ để một cái gì đó giống như JDE_4_7_0_OR_HIGHER, sau đó đi vào tập tin Blackberry_App_Descriptor.xml của dự án của bạn và thêm JDE_4_7_0_OR_HIGHER vào danh sách "preprocess Chỉ thị", và sau đó chắc chắn rằng nó được kích hoạt bất cứ khi nào bạn biên dịch dự án với một phiên bản JRE đó là 4.7 hoặc cao hơn (bạn có thể cài đặt nhiều JRE và sau đó chọn một JRE cụ thể trong các tùy chọn dự án trước khi biên dịch). Sau đó, mã của bạn sẽ trông giống như sau:

//#preprocess 

//#ifdef JDE_4_7_0_OR_HIGHER 
import net.rim.device.api.ui.component.ButtonField; 
//#else 
import net.rim.device.api.ui.component.LabelField; 
//#endif 
import net.rim.device.api.ui.container.MainScreen; 


public class TestScreen extends MainScreen{ 

     TestScreen(){ 

       //#ifdef JDE_4_7_0_OR_HIGHER 
       ButtonField btn = new ButtonField("Test Button"); 
       add(btn); 
       //#else 
       LabelField lbl1 = new LabelField("Test Label 1"); 
       add(lbl1); 
       //#endif 
     } 
} 
Các vấn đề liên quan