Android開發使用AS是大勢所趨的了,畢竟是谷歌的正統血脈,從剛開始的1.0到現在的1.4已經逐漸穩定,修復了很多Bug, 越來越人性化了。但是還是會出現或多或少的問題,今天想用HttpClient下載網絡圖片,卻沒有HttpClient以及相關的類,查詢了一下發現原來-
在API 23中,Google已經移除了移除了Apache HttpClient相關的類 。谷歌推薦使用HttpUrlConnection,如果要繼續使用需要Apache HttpClient,需要在
Eclipse下libs里添加org.apache.http.legacy.jar,
Android studio里在相應的module下的build.gradle中加入即可。 android { useLibrary 'org.apache.http.legacy' }
HttpClient雖然已經被Google拋棄,但是有限項目依然依賴這些庫,還得用。我把Httpclient的所有庫導入項目后,會產生如下錯誤。
Error:duplicate files during packaging of APK F:\Downloads\MyApplication7\app\build\outputs\apk\app-debug-unaligned.apk
Path in archive: META-INF/DEPENDENCIES
Origin 1: F:\Downloads\MyApplication7\app\libs\httpclient-4.5.2.jar
Origin 2: F:\Downloads\MyApplication7\app\libs\httpcore-4.4.4.jar
經過查找可以在文件中加入以下代碼消除這個問題。
- packagingOptions {
- exclude 'META-INF/DEPENDENCIES'
- exclude 'META-INF/NOTICE'
- exclude 'META-INF/LICENSE'
- exclude 'META-INF/LICENSE.txt'
- exclude 'META-INF/NOTICE.txt'
- exclude 'META-INF/ASL2.0'
- exclude 'META-INF/notice.txt'
- }
如果在build.gradle中看不到android{}部分,可能是gradle的版本過低
Android Studio每次更新版本都會更新Gradle這個插件,但由於長城的問題每次更新都是失敗,又是停止在Refreshing Gradle Project ,有時新建項目的時候報 Gradle Project Compile Error 等等相關的問題
解決這些問題辦法是
首先打開android studio項目 找到項目目錄gradle\wrapper\gradle-wrapper.properties這個文件
內容如下
#Wed Apr 10 15:27:10 PDT 2013
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=http\://services.gradle.org/distributions/gradle-1.9-all.zip
最重要的就是最下面一句,android studio會聯網下載符合當前版本的gradle插件,而這個網址雖然可以訪問但速度實在太慢,所以每次更新需要花很長時間或直接超時
下面是我嘗試后解決問題的辦法就是先通過下載工具下載http://services.gradle.org/distributions/gradle-1.9-all.zip 這個版本的插件,用下載工具會比較快下載后 直接把zip文件,不要解壓拷貝到 C:\Users\Administrator\.gradle\wrapper\dists\gradle-1.9-all\3jdgemv0iv8uqohg3kcp2o88r1 目錄下
重新關閉android studio 重新打開 或 直接單擊android studio工具欄 Sync Project Gradle Files
android studio就是自動更新插件了,不用下載了