2014-10-02 19 views
5

Hi için .jar dahil 3.2.1, ancak stackoverflow arama ve google-mühendislik yapmanın beş gün sonra hala benim soru için cevabım yok:Qt Creator tüm ve Maalesef bu soruyu soran için şimdiden Android

Qt derledikten sonra android uygulamam tarafından kullanılacak olan projeme birkaç * .jar dosyası eklemek istiyorum. İşte

benim ortamdır:

  • Qt Creator 3.2.1 (kaynaklardan derlenmiş değil exe,) (Qt-Part başlayarak)
  • main.cpp
  • android/MainActivity.java (Yüklü Basit "Merhaba dünya" şeyleri başlatmak ve .jars tarafından sağlanan farklı sınıflar içermelidir (google-api-client-1.19.0.jar google-api-client-android-1.19.0.jar google-http-client-1.19. 0.jar google-http-client-android-1.19.0.jar google-http-client-jackson-1.19.0.jar google-oauth-client-1.19.0.jar adresinde daha fazla bilgi alabilirsiniz. Jackson-core-asl-1.9.13. jar jsr305-1.3.9.jar)
  • Bu sorun için Googling sonra gerekli .jars

içeren

  • android/AndroidManifest.xml
  • android/libs, ben aynı sonucu her seferinde alma, neredeyse her şeyi denedim: .jars için bulunmayan android uygulama veya derleme işlemi işe yaramadı:

    [javac] C:\workspaces\qt_android\build-GsQt-Android\android-build\src\com\gservice\MainActivity.java:14: error: package com.google.android.gms.common does not exist 
    [javac] import com.google.android.gms.common.ConnectionResult; 
    [javac]         ^
    [javac] C:\workspaces\qt_android\build-GsQt-Android\android-build\src\com\gservice\MainActivity.java:15: error: package com.google.android.gms.common.api does not exist 
    [javac] import com.google.android.gms.common.api.GoogleApiClient; 
    [javac]           ^\MainActivity.java:15: error: package com.google.android.gms.common.api does not exist 
    

    ve benzeri dahil edilecektir sekiz kavanoz tümü için.

    İşte dahil etmek çalıştı şeyler şunlardır:

    • "kütüphanelerini" denilen android içindeki bir klasörü, oluşturulan ve onun içine benim kavanoz koydu. Projeyi oluşturduktan sonra, klasör ve kavanozlar derleme dizinine kopyalanmıştır. Cihaza göründüğü gibi değil.
    OTHER_FILES += \ 
    android/libs/google-api-client-1.19.0.jar \ 
    android/libs/google-api-client-android-1.19.0.jar \ 
    android/libs/google-api-services-gmail-v1-rev2-1.18.0-rc.jar \ 
    android/libs/google-http-client-1.19.0.jar \ 
    android/libs/google-http-client-android-1.19.0.jar \ 
    android/libs/google-http-client-jackson-1.19.0.jar \ 
    android/libs/google-oauth-client-1.19.0.jar \ 
    android/libs/jackson-core-asl-1.9.13.jar \ 
    android/libs/jsr305-1.3.9.jar \ 
    android/AndroidManifest.xml \ 
    android/src/com/gservice/MainActivity.java \ 
    
    • .pro dosyasında varlıklar-içerme çalışıyor:
    LIBS_INSTALL_PATH=/assets/libs 
    
  • onlara AndroidManifest ve MainActivity gibi basit diğer dosyaları dahil

    kütüphaneler .path = android/libs kütüphaneler.files + = google-api-client-1.19.0.jar google-api-client-android-1.19.0.jar google-http-client-1.19.0.jar google-http -client-android-1.19.0.jar google-http-client-jackson-1.19.0.jar google-oauth-client-1.19.0.jar bir güç-birleşik-bir-bir-bir-bir-bir-bir-bir-bir-bir-bir jar libraries.depends + = KUVVET INSTALLS + = kütüphaneleri

    • bir libraries.qrc dosyası oluşturma ve KAYNAKLARI ile .pro dosyasında + = libraries.qrc bu içerir

      . kütüphaneler.QRC:
    <RCC> 
    <qresource prefix="/libs"> 
        <file>android/libs/google-api-client-1.19.0.jar</file> 
        <file>android/libs/google-api-client-android-1.19.0.jar</file> 
        <file>android/libs/google-api-services-gmail-v1-rev2-1.18.0-rc.jar</file> 
        <file>android/libs/google-http-client-1.19.0.jar</file> 
        <file>android/libs/google-http-client-android-1.19.0.jar</file> 
        <file>android/libs/google-http-client-jackson-1.19.0.jar</file> 
        <file>android/libs/google-oauth-client-1.19.0.jar</file> 
        <file>android/libs/jackson-core-asl-1.9.13.jar</file> 
        <file>android/libs/jsr305-1.3.9.jar</file> 
    </qresource> 
    </RCC> 
    
    • qmake buyruğuyla ile çalışırken "rcc -binary google-api-client-1.19.0.jar -o google-api-client-1.19.0.rcc" gibi ek parametre

    ... Gerçekten bilmiyorum (hata verir ki, o RCC dosyası bulunamadı değil) Bundan sonra ne yapacağım, tüm Android konfigürasyonlarım (JDK, SDK, NDK, Ant) doğru yerde ve erişilebilir, JAVA_HOME var ve ANT var.

    Sonunda iki adet öz: Android'e eklemek istediğim kod, Android ADT ile oluşturduğum bir Google+ kimlik doğrulama uygulamasıdır ve bu iyi çalışıyor. Bu çalışma bileşenlerini Qt'nin yapı ortamına aktarırım.

    Bu looooong açıklamasını okumak ve bunu çözmeme yardımcı olmak için şimdiden teşekkür ederiz!

    Loyd

  • cevap

    0

    OTHER_FILES insan tüketimine içindir. Dosyaları yalnızca ağacın içine dahil etmek için Qt Creator'un proje kaşifi tarafından kullanılır. Yapım sürecinde hiç kullanılmaz.

    Qt kaynak sistemi (QRC) yalnızca QFile'dan kullanılabilir, Android VM'nin bu "dosyaları" hakkında bilgisi yoktur.

    +0

    Yani, herhangi bir şekilde bir .jar dosyası, herhangi bir şekilde Qt ile oluşturulan android uygulamamıza "iletmek" mümkün değil mi? –

    +0

    @LoydSchnitzel Eminim ki, kesinlikle işe yaramayacağına işaret ediyorum. –

    +0

    Haklısın ... Her seferinde yanlış bir yoldan çıkabileceğimiz, doğru yoldan başka bir adım! Girdiniz için teşekkürler! (Cevabınızı derecelendirirsiniz, ancak şu ana kadar gereken itibara sahip değilim) –

    4

    ÇÖZÜM:

    dahildir ve Android ve Qt Dosyalar .jar kullanmak için bir yolu yoktur. Ve kesinlikle bir hayal edebiliyorum kolay yoludur:

    1. açın Qt projesinin android klasör
    2. "src" klasörü gibi (aynı seviyede ve "AndroidManifest.xml" "kütüphanelerini" adlı bir klasör oluşturun)
    3. Eğer kütüphanelerini
    4. klasörü içine zamanki
    5. bu kadar

    olarak android-java dosya içinde bunları içe kullanmak istiyorum * .jar dosyaları koyun. Project.pro veya main.qrc'nin herhangi bir uyarlaması gerekmediği gibi, android veya benzerleri için bir .properties dosyası oluşturmaya da gerek yoktur.

    +0

    Teşekkür ederiz..lifesaver! –

    +0

    Hoşgeldin =) Düşündüm, QT yeni sürümü bir dokümantasyon güncellemesi var, ama hala biraz parçalanmış ;-) –

    +0

    # nasıl C++ veya qml için? –