使用androiddeployqt

时间:2016-10-07 21:32:00

标签: android qt gradle android-gradle

我有一个用于android的Qt应用程序,我命令行使用shell脚本构建它。我想用gradle。所以我使用以下命令进行安装步骤。

androiddeployqt --sign mykey.keystore --storepass mypassword --output android-build --verbose --gradle --input MyApp/myapplib.so-deployment-settings.json

我在使用gradle 2.2.1时遇到了麻烦。因此,我通过下载gradle 3.1更新了我的gradle包装器。但是在运行命令时,gradle似乎仍在尝试下载2.2.1并给出以下错误。

Pregenerating entry list for assets file engine.
Downloading https://services.gradle.org/distributions/gradle-2.2.1-all.zip

Exception in thread "main" java.net.UnknownHostException: services.gradle.org
    at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
    at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
    at java.net.Socket.connect(Socket.java:589)
    at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:668)
    at sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173)
    at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
    at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
    at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264)
    at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367)
    at     sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(Abs    tractDelegateHttpsURLConnection.java:200)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1124)
    at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:999)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:1513)
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1441)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(HttpsURLConnectionImpl.java:254)
    at org.gradle.wrapper.Download.downloadInternal(Download.java:58)
    at org.gradle.wrapper.Download.download(Download.java:44)
    at org.gradle.wrapper.Install$1.call(Install.java:61)
    at org.gradle.wrapper.Install$1.call(Install.java:48)
    at org.gradle.wrapper.ExclusiveFileAccessManager.access(ExclusiveFileAccessManager.java:69)
    at org.gradle.wrapper.Install.createDist(Install.java:48)
    at org.gradle.wrapper.WrapperExecutor.execute(WrapperExecutor.java:107)
    at org.gradle.wrapper.GradleWrapperMain.main(GradleWrapperMain.java:61)
Building the android package failed!

有人可以指出我该如何摆脱这个错误&amp;使用gradle构建我的Qt应用程序?

4 个答案:

答案 0 :(得分:1)

在环境变量中设置新变量“_JAVA_OPTIONS”,其值为

-Dhttp.proxyHost=192.168.0.1 -Dhttp.proxyPort=8080 -Dhttp.proxyUser=1234 -Dhttp.proxyPassword=5678 -Dhttps.proxyHost=192.168.0.1 -Dhttps.proxyPort=8080 -Dhttps.proxyUser=1234 -Dhttps.proxyPassword=5678

的Unix

export _JAVA_OPTIONS="-Dhttp.proxyHost=192.168.0.1 -Dhttp.proxyPort=8080 -Dhttp.proxyUser=1234 -Dhttp.proxyPassword=5678 -Dhttps.proxyHost=192.168.0.1 -Dhttps.proxyPort=8080 -Dhttps.proxyUser=1234 -Dhttps.proxyPassword=5678"

答案 1 :(得分:1)

第一个::更正QT的构建设置/构建环境中的一些无效变量(即,错误的斜杠是/而不是)...并添加一些。具体来说:

ANDROID_HOME = D:\Android-SDK
ANDROID_SDK_ROOT = D:\Android-SDK
GRADLE_USER_HOME = C:\Users\pc\.gradle
JAVA_HOME = D:\Program Files\Java\jdk1.8.0_201

(显然,您的安装目录需要更新这些文件,即通常在C:驱动器上)

注意:我在Windows env设置中指定了这些,但是似乎需要在QT的env替代中专门设置它们。

第二个:通过Android Studio SDK管理器从Android SDK构建工具中删除29.0.0RC1。应用。 选择“显示软件包详细信息”,然后可以选择28.0.3版本。申请。

第3 :进入QT项目/应用的文件夹并编辑gradle.properties文件...将行更改为:

androidBuildToolsVersion=28.0.3

最后:您可能应该关闭并重新打开QT和项目。

答案 2 :(得分:1)

按照https://docs.gradle.org/current/userguide/build_environment.html#sec:gradle_environment_variables

使用这样的http和https代理定义环境变量 GRADLE_OPTS

GRADLE_OPTS=-Dhttp.proxyHost=123.23.23.123 -Dhttp.proxyPort=8080 -Dhttps.proxyHost=123.23.23.123 -Dhttps.proxyPort=8080

答案 3 :(得分:0)

这是网络问题或代理问题。如果gradle无法通过代理设置,则在〜/ .gradle中创建gradle.settings或在PATH中创建自己定义的GRADLE_USER_HOME。

systemProp.http.proxyHost=proxy
systemProp.http.proxyPort=port
systemProp.http.proxyUser=user
systemProp.http.proxyPassword=password
systemProp.http.nonProxyHosts=*.nonproxyrepos.com|localhost