在Qt项目上引用Google Play库

时间:2015-04-17 12:21:10

标签: android c++ qt google-cloud-messaging

我正在使用Qt for Android制作应用,我希望它使用Google Cloud Messaging服务进行推送通知。但我很难确定如何使用Qt安装所有这些。

文档说我需要将Google Play库引用到我的项目中。 https://developer.android.com/tools/projects/projects-cmdline.html#ReferencingLibraryProject

我假设我需要通过命令行完成所有这些,因为我没有使用android SDK。所以按照文档

To add a reference to a library project, navigate to the <sdk>/tools/ directory and use this command:

android update project \
--target <target_ID> \
--path path/to/your/project
--library path/to/library_projectA

所以我尝试执行:

C:\Users\01222_000\Documents\android-sdk\tools>android update project --target "
C:\Users\01222_000\Desktop\app1" --path C:\Users\01222_000\Desktop\app1 --librar
y C:\Users\01222_000\QtProjects\google-play-services_lib

它给了我这个错误:

Error: Target id 'C:\Users\01222_000\Desktop\app1' is not valid. Use 'android.ba
t list targets' to get the target ids.

所以我使用android.bat来检查哪些目标ID可用:

C:\Users\01222_000\Documents\android-sdk\tools>android.bat list targets
Available Android targets:
----------
id: 1 or "android-22"
     Name: Android 5.1.1
     Type: Platform
     API level: 22
     Revision: 2
     Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, W
XGA720, WXGA800, WXGA800-7in
 Tag/ABIs : android-tv/armeabi-v7a, android-tv/x86, default/armeabi-v7a, default
/x86, default/x86_64
----------
id: 2 or "Google Inc.:Google APIs:22"
     Name: Google APIs
     Type: Add-On
     Vendor: Google Inc.
     Revision: 1
     Description: Android + Google APIs
     Based on Android 5.1.1 (API level 22)
     Libraries:
      * com.android.future.usb.accessory (usb.jar)
          API for USB Accessories
      * com.google.android.media.effects (effects.jar)
          Collection of video effects
      * com.google.android.maps (maps.jar)
          API for Google Maps
     Skins: HVGA, QVGA, WQVGA400, WQVGA432, WSVGA, WVGA800 (default), WVGA854, W
XGA720, WXGA800, WXGA800-7in
 Tag/ABIs : google_apis/armeabi-v7a, google_apis/x86, google_apis/x86_64

有人能指出我做错了什么吗?或者我是否一直遵循错误的方向?

1 个答案:

答案 0 :(得分:1)

您需要使用&#34; android.bat列出目标&#34;给出的目标ID之一。也就是说,1或&#34; android-22&#34;适用于Android 5.1.1,2或者&#34; Google Inc.:Google API:22&#34;适用于Google API。

一个例子(假设您将使用1或&#34; android-22&#34;),运行:

android update project --target 1 --path C:\Users\01222_000\Desktop\app1 --library C:\Users\01222_000\QtProjects\google-play-services_lib

android update project --target "android-22" --path C:\Users\01222_000\Desktop\app1 --library C:\Users\01222_000\QtProjects\google-play-services_lib