0

我想在我的cordova項目中添加以下依賴項。但是,構建過程中依賴項會被忽略。Android Gradle依賴關係

compile 'org.apache.httpcomponents:httpclient:4.5.2' 

從類似問題的答案,我意識到我已經排除了幾個模塊和組。

所以我對依賴關係做了如下修改。

compile 'org.apache.httpcomponents:httpclient:4.5.2' 
compile ('org.apache.httpcomponents:httpclient:4.5.2'){ 
    exclude module: 'httpclient' //by artifact name 
    exclude group: 'org.apache.httpcomponents' //by group 
    exclude group: 'org.apache.httpcomponents', module: 'httpclient' //by both name and group 
} 

不過,我仍然得到此警告。

WARNING: Dependency org.apache.httpcomponents:httpclient:4.5.2 is ignored for debug as it 
may be conflicting with the internal version provided by Android. 
In case of problem, please repackage it with jarjar to change the class packages. 

由於這樣,我的所有HTTP命令,如HTTP POST,HTTP客戶端等都沒有解決。

有人可以建議我究竟要排除什麼,以及是否需要更改配置?

回答

3

您可以通過加入這一行使用HTTP庫建立您的應用程序的腳本:

useLibrary 'org.apache.http.legacy' 

像:

android { 
    compileSdkVersion XX 
    buildToolsVersion "XX.X.X" 

    useLibrary 'org.apache.http.legacy' 

    // other lines 
} 

希望這有助於:)

+0

確保你在正確的build.gradle文件中完成它。我在Google LVL上遇到了這個問題,但一直把它放在應用程序的build.gradle中 – Oded

1

使用適合各自android版本的Apache http客戶端的重新打包版本。

對於Android的API 22歲以上

dependencies { 
    compile group: 'org.apache.httpcomponents' , name: 'httpclient-android' , version: '4.3.5.1' 
} 

對於Android的API 23和新

dependencies { 
    compile group: 'cz.msebera.android' , name: 'httpclient', version: '4.4.1.1' 
} 

此連結更多信息 - https://hc.apache.org/httpcomponents-client-4.5.x/android-port.html

+0

我有+1了這個太早了。我得到的錯誤: 找不到符號類的NameValuePair 找不到符號變量URLEncodedUtils 找不到符號類的NameValuePair 即使有新的依賴 – Oded

+0

@Oded我猜你仍然缺少一些依賴。 – Gandhi

+0

我想我可能已經把依賴項放在錯誤的build.gradle文件中。 – Oded