Eu tenho uma classe simples escrita no Android Studio:
package com.mysite.myapp;
import org.apache.http.client.HttpClient;
public class Whatever {
public void headBangingAgainstTheWallExample () {
HttpClient client = new DefaultHttpClient();
}
}
e a partir disso, recebo o seguinte erro de tempo de compilação:
Cannot resolve symbol HttpClient
Não está HttpClient
incluído no Android Studio SDK? Mesmo que não seja, eu o adicionei à minha compilação Gradle assim:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'org.apache.httpcomponents:httpclient:4.5'
}
Com ou sem a última linha de compilação, o erro é o mesmo. o que estou perdendo?
android
gradle
android-gradle-plugin
apache-httpclient-4.x
AndroidDev
fonte
fonte
AndroidHttpClient
se puder. Os stubs HttpClient estão de fato contidos no jar do Android, portanto, não há necessidade de se referir a ele explicitamente. Observe que a versão android do httpclient é provavelmente 4.1.1. Tentar usar uma versão mais recente em cima disso geralmente está causando problemas (leia-se: não funciona, porque o carregador de classe de firmware sempre vence).Respostas:
HttpClient
não é mais suportado no sdk 23. É necessário usarURLConnection
ou fazer o downgrade para o sdk 22 (compile 'com.android.support:appcompat-v7:22.2.0'
)Se você precisar do sdk 23, adicione isso ao seu gradle:
Você também pode tentar baixar e incluir HttpClient jar diretamente em seu projeto ou usar OkHttp vez
fonte
android { useLibrary 'org.apache.http.legacy' }
[quando você adiciona isso] [1] 'org.apache.http' android-studio ainda tem dicas: 'Não é possível resolver o símbolo' [2] isso faz com que o android-studio (com sdk23) possa ser construído. embora haja dicas (não é possível resolver o símbolo) [3] se você adicionar jar, não há dicas, pode criar, mas !!! não pode ser executado, porque possui duas cópias 'org.apache.http'Volley
biblioteca, observe que essa adição da linha gradle deve ser inserida no arquivo gradle da biblioteca, e não no seu aplicativo. Funciona perfeitamente! Muito obrigado!O HttpClient foi descontinuado no nível 22 da API e removido no nível 23 da API. Você ainda pode usá-lo no nível 23 da API e em diante, se necessário; no entanto, é melhor mudar para métodos suportados para lidar com HTTP. Portanto, se você estiver compilando com 23, adicione isso em seu build.gradle:
fonte
android { useLibrary 'org.apache.http.legacy' }
[quando você adiciona isso] [1] 'org.apache.http' android-studio ainda tem dicas: 'Não é possível resolver o símbolo' [2] isso faz com que o android-studio (com sdk23) possa ser construído. embora haja dicas (não é possível resolver o símbolo) [3] se você adicionar jar, não há dicas, pode criar, mas !!! não pode ser executado, porque possui duas cópias 'org.apache.http'A resposta do TejaDroid no link abaixo me ajudou. Não é possível importar o org.apache.http.HttpResponse no Android Studio
fonte
Para usar o Apache HTTP para SDK Nível 23:
Nível superior build.gradle - /build.gradle
Notificação do estúdio Android sobre atualização gradle:
Build.gradle específico do módulo - /app/build.gradle
fonte
Tente isso funcionou para mim Adicione essa dependência ao seu arquivo build.gradle
fonte
1- baixe os arquivos jar do Apache (como nesta resposta) 4.5.zip file:
https://hc.apache.org/downloads.cgi?Preferred=http%3A%2F%2Fapache.arvixe.com%2F
2- abra o zip, copie os arquivos jar na sua pasta libs. Você pode encontrá-lo se for ao topo do seu projeto, onde está escrito "Android", você encontrará uma lista quando clicar nele. Assim,
Coloque os frascos lá.
3- No build.gradle (Module: app) adicione
no
4- Na classe java, adicione estas importações:
fonte
O HttpClient não é mais suportado no sdk 23. A versão Android 6.0 (API Nível 23) remove o suporte ao cliente HTTP Apache. Você tem que usar
e adicione também o snippet de código abaixo em sua dependência:
// solução final http para serviço da web (incluindo upload de arquivo)
Também o ajudará enquanto você usa Usar MultipartEntity para upload de arquivos .
fonte
na API 22, elas se tornam obsoletas e na API 23 as removeram completamente, uma solução simples, se você não precisar de todas as coisas sofisticadas das novas adições, é simplesmente usar os arquivos .jar do apache que foram integrados antes da API 22, mas como arquivos .jar separados:
fonte
Se você deseja importar alguma classe como:
Você pode adicionar a seguinte linha no build.gradle (dependências Gradle)
fonte
Você pode simplesmente adicionar isso às dependências do Gradle:
fonte
HttpGet
. Para isso eu usei #compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
A versão Android 6.0 (API Nível 23) remove o suporte ao cliente HTTP Apache. Portanto, você não pode usar esta biblioteca diretamente na API 23. Mas existe uma maneira de usá-la. Adicione useLibrary 'org.apache.http.legacy' em seu arquivo build.gradle como abaixo:
Se isso não funcionar, você pode aplicar o seguinte hack-
- Copie org.apache.http.legacy.jar, que está no caminho / plataformas / android-23 / opcional do diretório do Android SDK para a pasta app / libs do seu projeto.
- Agora adicione arquivos de compilação ('libs / org.apache.http.legacy.jar') dentro da seção dependências {} do arquivo build.gradle.
fonte
O ApacheHttp Client é removido no v23 sdk. Você pode usar o HttpURLConnection ou o cliente Http de terceiros como o OkHttp.
ref:
https://developer.android.com/preview/behavior-changes.html#behavior-apache-http-client
fonte
HttpUrlConnection
é realmente incentivada em vez de HttpClientBasta usar este: -
fonte
HttpClient não é suportado nos sdk 23 e 23+.
Se você precisar usar o sdk 23, adicione o código abaixo ao seu gradle:
Está funcionando para mim. Espero que seja útil para você.
fonte
Se você precisar do sdk 23, adicione isso ao seu gradle:
fonte
Você precisa adicionar apenas uma linha
em build.gradle (Module: app), por exemplo
fonte
Qual destino de API você possui no seu projeto?
AndroidHttpClient
é apenas para o nível 8 da API <. e por favor dê uma olhada aquiaproveite seu código :)
fonte
Como mencionado anteriormente,
org.apache.http.client.HttpClient
não é mais suportado em:SDK (nível da API) nº 23.
Você tem que usar
java.net.HttpURLConnection
.Se você quiser fazer o seu código (e de vida) mais fácil quando se usa
HttpURLConnection
, aqui está umaWrapper
desta classe que vai deixar você fazer operações simples comGET
,POST
ePUT
utilizandoJSON
, como por exemplo, fazer umHTTP PUT
.Sinta-se livre para usá-lo.
fonte
Adicione essas duas linhas em dependências
então
sob o andróide
fonte
Cole o seu arquivo .jar na "pasta libs" do seu projeto. Em gradle, adicione esta linha no seu build.gradle (Módulo: app)
fonte
Erro: (30, 0) Método DSL Gradle não encontrado: 'classpath ()' Possíveis causas:
fonte
Para API Android 28 e superior no Manifest.xml dentro da tag do aplicativo
fonte
Acho que, dependendo da versão do Android Studio que você possui, é importante que você atualize seu android studio também. Fiquei frustrado também seguindo os conselhos de todos, mas sem sorte, até que tive que atualizar minha versão do Android de 1.3 para 1.5, os erros desapareceram como Magia.
fonte