BlackBerry Cascades 10 Maps 示例一直显示黑屏

Posted

技术标签:

【中文标题】BlackBerry Cascades 10 Maps 示例一直显示黑屏【英文标题】:BlackBerry Cascades 10 Maps example keeps showing black screen 【发布时间】:2013-03-11 14:02:25 【问题描述】:

我正在尝试运行地图示例 Qml,但是我的 MapView 一直加载为黑色。我检查了控制台输出并发现了这一点。

slogger2 buffer handle not initialized. ../../lgmon_api.c, logEvent(), around line 578!
cpp:: Created document 
cpp:: properties set 
MapViewPrivate::removeRenderEngine 
using the following render engine:  bb::cascades::maps::BlankRenderEngine 
MapViewPrivate::removeRenderEngine 
removing the old render engine:  bb::cascades::maps::BlankRenderEngine 
RenderEngineManager::RenderEngineManager 
RenderEngineManager::scanForPlugins() 
render engine search: searching   QDir( "/apps/com.example.GConnectBB.testDev__GConnectBB7836cab4/native/mapview-renderengine" , nameFilters =  * ,  QDir::SortFlags( Name | IgnoreCase ) , QDir::Filters( Dirs|Files|Drives|AllEntries ) )  
render engine search: searching   QDir( "/base/usr/lib/qt4/plugins/mapview-renderengine" , nameFilters =  * ,  QDir::SortFlags( Name | IgnoreCase ) , QDir::Filters( Dirs|Files|Drives|AllEntries ) )  
render engine search: attempting to load  "/base/usr/lib/qt4/plugins/mapview-renderengine/libRenderEngine3d.so" 
unknown symbol: _ZTIN2bb8platform3geo11GeoLocationE
unknown symbol: _ZTIN2bb8platform3geo11GeoLocationE
unknown symbol: _ZNK2bb8platform3geo11GeoLocation10metaObjectEv
unknown symbol: _ZN2bb8platform3geo11GeoLocation11qt_metacastEPKc
unknown symbol: _ZN2bb8platform3geo11GeoLocation11qt_metacallEN11QMetaObject4CallEiPPv
unknown symbol: _ZNK2bb8platform3geo11GeoLocation11boundingBoxEv
unknown symbol: _ZTIN2bb8cascades4maps17BlankRenderEngineE
unknown symbol: _ZN2bb8cascades4maps17BlankRenderEngine16staticMetaObjectE
unknown symbol: _ZTIN2bb8platform3geo10GeographicE
RenderEngineManager::engine(  <ViewProperties altitude=0, heading=0, lat=43.4682, lon=-80.5196, tilt=0, window=QSize(0, 0) >  ) 
using the following render engine:  bb::cascades::maps::BlankRenderEngine 

所以看起来它没有为我的地图加载合适的渲染引擎。我尝试使用黑莓操作系统更新更新我的 SDK 并更新手机上的操作系统,但无济于事。

这是我的地图的完整 Qml:

import bb.cascades 1.0
import bb.cascades.maps 1.0

Page 
    Container 
        layout: StackLayout 
        
        MapView 
            id: mapview
            latitude: 43.468245
            longitude: -80.519603
            altitude: 10000
        
    

更多详情: 操作系统版本:10.9.10.35 原生 SDK:10.0.9.1673 Momentics 版本:10.0.9

我也尝试了另一个 SDK 版本,10.0.10.xxx,它也没有工作。

【问题讨论】:

尝试检查描述符中的所有权限。您是否在 .PRI ( -lbbcascadesmaps -lQtLocationSubset ) 中添加了所有库? 谢谢!那行得通,但是也需要包含 gl 行。不知道我是怎么错过的。无论如何,您能否将其表达为答案,以便我可以接受@Hithredin? 【参考方案1】:

正如@Hithredin 上面在评论中提到的那样,为了拥有地图功能,您需要确保在.pro 文件中为链接器指定了所有要链接的库:

LIBS += -lbbplatform -lbbcascadesmaps -lGLESv1_CM

如果您使用地理定位(在您使用地图时经常发生这种情况),您需要在 bar-descriptor.xml 文件中拥有以下权限集:

<permission>read_geolocation</permission>
<permission>access_location_services</permission>

有关 Blackberry 开发网站上的地图和位置的更多信息:

Location documentation Maps documentation

【讨论】:

【参考方案2】:

确保包含

#include <bb/cascades/maps/MapView>

在您的 ApplicationUI.hpp 或 ApplicationUI.cpp 中。

【讨论】:

他可能有这个,否则他将无法将类公开给 QML。 @bojan 不。如果他只使用 qml 编辑器,Momentics 不会返回任何关于#include 的错误,因为在 qml 页面顶部他已经导入了 bb.cascades.maps 首先在c++中你不需要它,所以你不需要包含它。而且您不需要自己将其公开给 QML。此外,如果您忘记包含某些内容,它总是会抛出错误 当然,如果你只使用 qml。

以上是关于BlackBerry Cascades 10 Maps 示例一直显示黑屏的主要内容,如果未能解决你的问题,请参考以下文章

BlackBerry Cascades 10 Maps 示例一直显示黑屏

BlackBerry Cascades:如何将数据加载到 ListView

如何在 Cascades、Blackberry 10 中使用 Qt/QML/C++ 从另一个 qml 文件中更改一个 qml 文件中的标签文本?

Blackberry Cascades 上下文菜单从按钮单击

BlackBerry Cascades 中的 QML 字符串

尝试在 Blackberry Cascades QT 和 QML 中下载图像