我想导入黑莓 5.0 及更高版本的 facebook 库,但不想导入 4.6 和 4.7 的这些库。
我尝试通过以下链接使用 4.7 及更高版本的预处理器:http://smartfone-more.blogspot.in/2010/05/coding-for-multiple-blackberry-devices.html http://smartfone-more.blogspot.in/2010/05/coding-for-multiple-blackberry-devices.html
现在它在 JDE 4.7 上工作正常,但在 5.0 上没有得到预期的结果。
请找到我尝试过的下面的代码:
//#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
}
}
根据代码,我期望 5.0 的 else 部分和 4.7 的 if 部分写入结果。
我在设备和 JDE 上都检查了它。
请帮忙。
首先,JDE_4_7_0
标签是您应该在 BlackBerry 项目属性 ->“编译”选项卡 -> 预处理器定义中定义的自定义标签。您可以为其指定您想要的名称。
其次,在源文件中,第一行(甚至在包声明之前)应该是:
//#preprocess
然后,当您想要禁用条件导入时,请返回到“预处理器定义”选项卡并删除JDE_4_7_0
入口。这将使编译器输入#else
条款。 Eclipse 的 BB 插件不会检测操作系统,这都是您应该控制的工件。
EDIT:
您最终将得到两组可交付成果,一组用于 5.0+,另一组用于 4.x。 BBant工具可以让你一步完成编译过程,但是编译的结果是一样的。作为替代方案,您可以:
- 尝试在 4.6 项目中包含 FacebookBlackBerrySDK-vx.x.x.jar 和 Log4B-vx.x.x.jar(确保它们已预先验证)。我能够包含这些 jar 并编译 4.5 项目,但这并不意味着您可以毫无错误地使用它们*。所以...
- 仅在 OS 5.0 及更高版本中使用 facebook 功能,通过在运行时检测它
DeviceInfo.getSoftwareVersion
or DeviceInfo.getPlatformVersion
.
使用这种方法,您可能能够拥有一个与 4.6+ 设备兼容的应用程序,并且只有 5.0+ 设备才会使用 fb sdk。
*注意:我不知道为什么 facebook blackberry sdk 是为 5.0 编译的。也许作者只是在他的开发机器上使用了较低的操作系统,谁知道呢。但如果没有测试它,我不能说它是 4.5 兼容的,只是说这个 jar 是 4.5 可编译的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)