2016-01-05 19 views
2

我正在製作一個支持Qt Creator(Community)5.5.1 for Android地圖的項目。我使用QML,現在我需要一些幫助,因爲我不知道我會做什麼。QML-Maps-Qt,用地圖點擊屏幕,處理並獲取座標

首先,我確定了我在QML和連接地圖中的位置。 QML代碼是在這裏: main.qml:

import QtQuick 2.0 
import QtPositioning 5.3 
import QtLocation 5.3 
Item { 
     PositionSource{ 
      active: true 
      onPositionChanged:{ 
       console.log(position.coordinate); 
      } 
     } 
     Map{ 
      id: map 
      anchors.fill: parent 
      plugin: Plugin {name: "osm"} 
      center: QtPositioning.coordinate(44.561083, 33.530209) 
      zoomLevel: 14 
     } 
} 

和代碼main.cpp中的:

#include <QGuiApplication> 
#include <QQuickView> 

int main(int argc, char **argv) 
{ 
    QGuiApplication app(argc, argv); 

    QQuickView view; 
    view.setSource(QUrl::fromLocalFile("main.qml")); 
    view.setResizeMode(QQuickView::SizeRootObjectToView); 

    view.resize(300, 400); 
    view.show(); 

    return app.exec(); 
} 

項目正在建設,並在桌面上運行,它的工作和地圖都顯示在屏幕上。但在Armeabi(機器人)他們沒有顯示。我正在真實設備上測試我的程序。 My deviceDesktop是的,它的運行和建設,但屏幕是白色的,也有一些紅色的日誌:

E /合子(23941):合子:錯誤關閉描述E /受精卵 (23941):libcore.io。 ErrnoException:關閉失敗:EBADF(Bad file number)E/Zygote(23941):at libcore.io.Posix.close(Native Method) E/Zygote(23941):at libcore.io.BlockGuardOs.close(BlockGuardOs .java:75)E/Zygote(23941): at com.android.internal.os.ZygoteInit.closeServerSocket(ZygoteInit.java:224) E/Zygote(23941):at com.android.internal.os .ZygoteConnection.han dleChildProc(ZygoteConnection.java:879) E /合子(23941):在 com.android.internal.os.ZygoteConnection.runOnce(ZygoteConnection.java:242) E /合子(23941):在 com.android。 internal.os.ZygoteInit.runSelectLoop(ZygoteInit.java:704) E/Zygote(23941):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)E/Zygote (23941):在dalvik.system.NativeStart.main(本機方法)

E /(23941):APPNAME = org.qtproject.example.LOCATIONQML, acAppName = /系統/斌/ SurfaceFlinger的E /(23941):0

W/libLOCATIONQM L.so(23941): file:///data/data/org.qtproject.example.LOCATIONQML/files/main.qml:-1 ((null)): file:/// data/data/org.qtproject.example.LOCATIONQML/files/main.qml: 未找到文件E /(23941): appName = org.qtproject.example.LOCATIONQML, acAppName =/system/bin/surfaceflinger E /(23941) 0

W /的ResourceType(23941):沒有包標識符 資源編號00000001

越來越名字時,我有兩個問題:

  1. 爲了在真實設備Android上使用我的程序,我必須做些什麼?地圖會顯示在智能手機的屏幕上?
  2. 怎麼辦,像我點擊智能手機屏幕的地圖和這個地區的座標被記住?爲了進一步,我可以比較用戶的當前位置和點擊地圖屏幕上的點的位置?
+0

發佈一個自包含的示例。這可能是某種包裝問題。 –

回答

0

您的qml可以正常使用最新的Qt。

嘗試使用qt創建器爲您生成的標準main(),使用QQmlApplicationEngine而不是QQuickView。