2012-05-01 7 views
5

Quiero importar bibliotecas de Facebook para blackberry 5.0 y posteriores y no quiero importar esas bibliotecas para 4.6 y 4.7.Una versión para dos versiones diferentes (4.6,4.7 y 5.0 + arriba) en blackberry

He intentado utilizar preprocesadores de 4,7 y por encima, siguiendo a continuación enlace: http://smartfone-more.blogspot.in/2010/05/coding-for-multiple-blackberry-devices.html

ahora su trabajo muy bien con JDE 4.7, pero no obtener resultado esperado para 5.0. Por favor, encontrar el código debajo de la cual he intentado:

//#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 
     } 
} 

De acuerdo con el código estoy esperando el resultado, en parte, por escrito otra cosa para 5.0 y si una parte de 4,7. Lo comprobé en el dispositivo y en JDE.

Por favor ayuda.

+1

¿Está utilizando JDE para compilaciones finales?si es así, debe compilarlo una vez con el indicador de preprocesador para obtener el archivo de código para los campos virtuales más bajos. Guárdelo en alguna parte. Y después de que tenga que quitar el indicador de preprocesador de las opciones de compilación de JDE y compilarlo para los campos operativos superiores –

+0

http://stackoverflow.com/questions/10445072/which-build-to-be-considered-for-use-when-a-preprocessor -is-utilizadas la salida este post demasiado – Yatin

Respuesta

3

En primer lugar, la etiqueta JDE_4_7_0 es una etiqueta personalizada que debe definir en las propiedades del proyecto BlackBerry -> pestaña "Compilar" -> preprocesador define. Puedes darle el nombre que deseas.

En segundo lugar, en el archivo de origen, la primera línea (incluso antes de la declaración del paquete) debe ser:

//#preprocess 

Entonces, cuando se desea desactivar la importación condicional, volver a la "preprocesador define la" pestaña y elimine la entrada JDE_4_7_0. Eso hará que el compilador ingrese la cláusula #else. El complemento de BB para eclipse no detecta el sistema operativo, es todo un artefacto que debe controlar.

EDIT:
Finalizará con dos juegos de entregas, una para 5.0+ y otra para 4.x. Las herramientas de BBant le permiten realizar el proceso de compilación en un solo paso, pero el producto de la compilación será el mismo. Como alternativa, se puede:

  • tratar de incluir FacebookBlackBerrySDK-vx.x.x.jar y Log4B-vx.x.x.jar (asegúrese estos se preverified) en un proyecto 4.6. Pude incluir estos archivos jar y compilar un proyecto 4.5, pero eso no significa que pueda usarlos sin errores *. Entonces ...
  • Utilice la funcionalidad de Facebook solo en OS 5.0 y superior, detectándolo en tiempo de ejecución con DeviceInfo.getSoftwareVersion o DeviceInfo.getPlatformVersion.

Usando este enfoque, es posible que pueda tener una sola aplicación compatible con 4.6+ dispositivos, y solo 5.0+ usará fb sdk.

* NOTA: No sé por qué Facebook blackberry sdk está compilado para 5.0. Tal vez el autor acaba de utilizar el sistema operativo más bajo que tenía en su máquina de desarrollo, quién sabe. Pero sin probarlo, no puedo afirmar que sea compatible con 4.5, solo que el jar es 4.5 compilable.

+0

OK .. @Mister Smith: significa que el JDE_4_7_0 no se utiliza para detectar OS – Yatin

+0

Entonces, ¿cómo se puede preparar 1 sólo una acumulación de 2 SO diferente ... Y eN lA MAYOR EL OTRO MÁS BAJO ... en esta pregunta, el usuario quiere crear una versión para 4.6 y la otra para 5.0 y superior para el paquete faceboook ... dado que el paquete de Facebook no es compatible con 4.6, ¿cómo puede usarse para el sistema operativo? @Mister Smith: – Yatin

+1

En caso de que esté hablando sobre el SDK bb de Facebook de fuente abierta no oficial, ambos archivos jar (FacebookBlackBerrySDK-vx.xxjar y Log4B-v x.x.x.jar) son compilables con OS 4.5 a pesar de que el autor usó 5.0. Pero, en general, para compilar en "una compilación" debe usar las herramientas de bbant, o bien hacerlo manualmente editando las propiedades del proyecto. –

2

Cambiar el nombre de la directiva a algo más parecido a JDE_4_7_0_OR_HIGHER, y luego ir en el archivo Blackberry_App_Descriptor.xml de su proyecto y añadir a la lista JDE_4_7_0_OR_HIGHER "Directivas preproceso", y luego asegúrese de que esté activado siempre que se compila el proyecto con una versión de JRE eso es 4.7 o más alto (puede instalar múltiples JRE y luego seleccionar uno específico en las opciones del proyecto antes de compilar). Entonces su código se verá así:

//#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 
     } 
} 
Cuestiones relacionadas