标签: blackberry-10

在Cascades和CoreNative之间,两个主要的Blackberry Playbook C++框架,哪个更容易使用?

我对Blackberry Playbook开发中的SDK/API选择数量感到非常困惑.在移动应用开发中是否有一个或另外建议更多的完成初学者?

暂且不谈Flash/Air,HTML和JAVA选项,哪两种原生C/C++选择更容易入手?我认为Cascades是未来,所以除非有理由不向初学者推荐,否则我猜这可能是想要更快完成更多工作的人的"更容易"的选择.

c++ blackberry blackberry-10

10
推荐指数
2
解决办法
2492
查看次数

获取BlackBerry 10日志的最佳方式是什么?

与iOS和Android相比,BlackBerry 10拥有相当复杂的日志系统.我找到的唯一解决方案是使用这样的javaloader工具:

javaloader.exe -u eventlog > eventlog.txt
Run Code Online (Sandbox Code Playgroud)

但它似乎仅适用于10年前版本的BlackBerry OS.我在BlackBerry 10 NDK中找不到此工具.

使用命令行获取日志的最简单方法是什么?

blackberry-10 blackberry-ndk

8
推荐指数
3
解决办法
7463
查看次数

BlackBerry 10后台服务

BB 10中是否有任何方法可以在手机启动时自动启动应用程序?如果是的话,是否有可能在进行后台处理(如cheking gps位置或wifi状态)时在后台进行重组?先感谢您.

blackberry-10

8
推荐指数
1
解决办法
1034
查看次数

使用无效套接字调用boost :: asio :: write()会使我的Blackberry 10应用程序崩溃

这篇文章涉及最近一个软件项目中遇到的技术问题,并允许读者从问题的来之不易的解决方案中受益.

背景

在我的公司,我是内部库的实现者和维护者,它使用Boost asio("ASynchronous I/O")套接字框架来实现套接字上的跨平台数据传输.一位同事最近遇到了以下问题:如果Wi-Fi路由器在文件传输操作期间被毫不间断地关闭,她的Blackberry 10应用程序会链接并使用我的库,在几秒钟内崩溃.

在库中启用内置跟踪向我们展示了当库调用boost :: asio :: write(boost :: asio :: ip :: tcp :: socket*,boost :: asio :: buffer)时发生崩溃)函数与套接字不是'有效'(即套接字可能无法使用).在write()周围放置一个try/catch(boost :: system :: system_error)块无法捕获任何内容 - 崩溃显然发生在Boost中.

因为崩溃只发生在发布版本中,所以我们无法使用调试器.

技术信息

  • QNX编译器QCC使用GNU 4.6.3
  • 使用的Boost版本是1.48.0

以下是编译器的典型命令行调用:

/home/foobar/bbndk/host_10_1_0_238/linux/x86/usr/bin/QCC
    -Vgcc_ntoarmv7le
    -lang-c++
    -x c++
    -DLINUX -DQNX -DSUPPORT_LAN -DUSE_SQLITE_FOR_DATABASE
    -Wno-psabi -Wno-write-strings
    -O3
    -DNDEBUG
    -fno-strict-aliasing
    -fPIC
    -I/home/foobar/Libraries/BlackBerry_10/boost_1.48/include
    ...
    -I/home/foobar/Libraries/BlackBerry_10/utfcpp_1.0/include
    -o CMakeFiles/Internals.dir/ConfigFileSingleton.cpp.o
    -c /home/foobar/myproject_dev/myproject/SDK/Internals/ConfigFileSingleton.cpp
Run Code Online (Sandbox Code Playgroud)

用于查找问题源的步骤

我们编写了一个轻量级的最小应用程序,尝试用更少的代码重现问题,首先使用原始套接字,然后使用Boost的ASIO.如果崩溃发生,我们可以认为问题不是由我们的专有库引起的.不幸的是,崩溃是不可重复的,导致我们怀疑我们的库有错.

我们编写了一个轻量级跟踪框架,用于Boost的ASIO头文件,用于检测与问题相关的功能.框架在进入和退出这些函数时输出一个字符串,使我们也可以跟踪变量的值.

使用跟踪框架,我们能够证明发生了boost :: throw_exception崩溃()模板函数(非相关#ifdef'd代码中删除).当系统级写入操作在"损坏的管道"上失败时,Boost调用此函数:

template<class E> BOOST_ATTRIBUTE_NORETURN inline void throw_exception( E const & e )
{
    //All …
Run Code Online (Sandbox Code Playgroud)

c++ sockets boost compiler-optimization blackberry-10

8
推荐指数
1
解决办法
322
查看次数

blackberry 10未解决的包含<QObject>

我正在使用新版本的Blackberry(Blackberry 10).我正在尝试将c ++代码与QML集成,但我遇到了一些我认为与其他问题相关的问题.在.h文件中,Q_OBJECT,Q_PROPERTY信号和插槽显示存在语法错误.并在我尝试使用此类型的QML文件中(例如导入CustomTimer 1.0)我得到了此问题模块"CustomTimer"未安装.如何解决这个问题?

blackberry-10

7
推荐指数
2
解决办法
2413
查看次数

如何在Blackberry 10模拟器中安装.bar文件

我有1个.bar文件,它是从eclipse插件生成的.

现在我想在Blackberry 10模拟器中测试那个.bar文件.

我该如何测试该应用程序?

我已经成功安装了黑莓模拟器10 Dev Alpha并配置了IP地址.

请帮我.提前致谢.

eclipse eclipse-plugin blackberry-simulator blackberry-eclipse-plugin blackberry-10

7
推荐指数
2
解决办法
6992
查看次数

如何在QML文件中找到语法错​​误?

我正在使用Cascades为Blackberry 10进行开发,其中包括QT和QML.我发现我有时会在我的QML文件中出错,但是在编译时它们没有被提取.如何检查我是否出现语法错误,错误命名函数调用或其他典型错误?

qt qml blackberry-10 blackberry-cascades

7
推荐指数
1
解决办法
1273
查看次数

是否可以在没有口吃的情况下播放无间隙的循环WAV文件?

我需要在BlackBerry 10应用程序中使用完美的无间隙循环音频.我的循环存储为WAV文件.我用来玩它们的方法是:

  1. 为WAV文件创建一个缓冲区,使用alutCreateBufferFromFile该缓冲区返回abufferID
  2. 使用创建声源 alGenSources
  3. 使用缓冲区将缓冲区附加到源 alSourcei(source, AL_BUFFER, bufferID)
  4. 使用将源循环属性设置为true alSourcei(source, AL_LOOPING, AL_TRUE)
  5. 使用播放源 alSourcePlay(source)

音频在大多数情况下都能正常播放,但在UI过渡期间(例如当背光灯熄灭或应用程序最小化时),音频会断断续续.

我有什么想法可以确保音频一直很流畅吗?

audio openal wav qnx blackberry-10

7
推荐指数
1
解决办法
482
查看次数

make:***没有规则来制作目标`Device-Debug'.停止.

我正在使用QNX的时刻进行黑莓开发.问题是每当我下载任何示例代码并在Simulator上运行它.然后错误来找我.

当我清理项目时,它给我错误

**** Clean-only build of configuration Simulator-Debug for project list ****

make -j4 clean 
make: *** No rule to make target `clean'.  Stop.

**** Build Finished ****
Run Code Online (Sandbox Code Playgroud)

在构建项目时它给了我

**** Build of configuration Simulator-Debug for project list ****

make -j4 Device-Debug 
make: *** No rule to make target `Device-Debug'.  Stop.

**** Build Finished ****
Run Code Online (Sandbox Code Playgroud)

这些错误不允许我运行任何示例代码.请任何人告诉我如何解决这个问题.我已将目标设置为Simulator-Debug.

blackberry-simulator blackberry-eclipse-plugin blackberry-10 blackberry-cascades blackberry-qnx

6
推荐指数
1
解决办法
4043
查看次数

将抽象类型作为Q_PROPERTY公开给QML

我正在使用Qt 4.8和BB10.

我为要实现的类定义了一个基本接口:

class AbstractImageProcessor : public QObject
{
public:
    AbstractImageProcessor(QObject * parent) : QObject(parent) {}
    virtual QImage process(const QByteArray &data) = 0;
    virtual ~AbstractImageProcessor(){ }
};
Run Code Online (Sandbox Code Playgroud)

我希望从QML中使用的一个这样的实现看起来像这样:

class WebImageProcessor : public AbstractImageProcessor
{
    Q_OBJECT
    Q_PROPERTY(int maxHeight READ getMaxHeight WRITE setMaxHeight NOTIFY maxHeightChanged)
    Q_PROPERTY(int maxWidth READ getMaxWidth WRITE setMaxWidth NOTIFY maxWidthChanged)
    Q_PROPERTY(bool fit READ isFit NOTIFY fitChanged)
    public WebImageProcessor(QObject * parent = 0) : AbstractImageProcessor(parent) {}
    virtual ~WebImageProcessor() {}
    /* rest of code omitted */ 
};
Run Code Online (Sandbox Code Playgroud)

我想将此AbstractImageProcessor作为另一个QML类型的属性公开:

class …
Run Code Online (Sandbox Code Playgroud)

c++ qt qml qt4.8 blackberry-10

6
推荐指数
1
解决办法
1910
查看次数