Saya memiliki kelas sederhana yang ditulis di Android Studio:
package com.mysite.myapp;
import org.apache.http.client.HttpClient;
public class Whatever {
public void headBangingAgainstTheWallExample () {
HttpClient client = new DefaultHttpClient();
}
}
dan dari ini saya mendapatkan kesalahan waktu kompilasi berikut:
Cannot resolve symbol HttpClient
Tidak HttpClient
termasuk dalam Android Studio SDK? Bahkan jika tidak, saya menambahkannya ke build Gradle saya seperti ini:
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'org.apache.httpcomponents:httpclient:4.5'
}
Dengan atau tanpa baris kompilasi terakhir, kesalahannya sama. Apa yang saya lewatkan?
AndroidHttpClient
jika Anda bisa. Rintisan HttpClient memang terkandung di dalam jar android, jadi seharusnya tidak perlu merujuk secara eksplisit. Perhatikan bahwa versi android dari httpclient mungkin 4.1.1. Mencoba menggunakan versi yang lebih baru di atas yang biasanya meminta masalah (baca: tidak berfungsi, karena classloader firmware selalu menang).Jawaban:
HttpClient
tidak didukung lagi di SDK 23. Anda harus menggunakanURLConnection
atau menurunkan ke SDK 22 (compile 'com.android.support:appcompat-v7:22.2.0'
)Jika Anda membutuhkan SDK 23, tambahkan ini ke gradel Anda:
Anda juga dapat mencoba mengunduh dan memasukkan tabung HttpClient langsung ke proyek Anda atau menggunakan OkHttp sebagai gantinya
sumber
android { useLibrary 'org.apache.http.legacy' }
[ketika Anda menambahkan ini] [1] 'studio-org.apache.http' android-masih memiliki tips: 'Tidak dapat menyelesaikan simbol' [2] ini dapat membangun android-studio (dengan SDK23). meskipun ada tips (Tidak dapat menyelesaikan simbol) [3] jika Anda menambahkan jar, tidak ada tips, dapat membangun, tapi !!! tidak dapat berjalan, karena memiliki dua salinan 'org.apache.http'Volley
perpustakaan, perhatikan bahwa penambahan garis gradle ini harus masuk ke file gradle untuk perpustakaan, dan bukan aplikasi Anda. Bekerja dengan sempurna! Terima kasih banyak!HttpClient sudah tidak digunakan lagi di API Level 22 dan dihapus di API Level 23. Anda masih dapat menggunakannya di API Level 23 dan seterusnya jika Anda harus, namun yang terbaik adalah beralih ke metode yang didukung untuk menangani HTTP. Jadi, jika Anda mengompilasi dengan 23, tambahkan ini di build.gradle Anda:
sumber
android { useLibrary 'org.apache.http.legacy' }
[ketika Anda menambahkan ini] [1] 'studio-org.apache.http' android-masih memiliki tips: 'Tidak dapat menyelesaikan simbol' [2] ini dapat membangun android-studio (dengan SDK23). meskipun ada tips (Tidak dapat menyelesaikan simbol) [3] jika Anda menambahkan jar, tidak ada tips, dapat membangun, tapi !!! tidak dapat berjalan, karena memiliki dua salinan 'org.apache.http'Jawaban TejaDroid di tautan di bawah membantu saya. Tidak dapat mengimpor org.apache.http.HttpResponse di Android Studio
sumber
Untuk menggunakan Apache HTTP untuk SDK Level 23:
Build.gradle tingkat atas - /build.gradle
Pemberitahuan dari Android studio tentang pembaruan gradle:
Modul khusus build.gradle - /app/build.gradle
sumber
Coba ini berhasil untuk saya Tambahkan ketergantungan ini ke File build.gradle Anda
sumber
1- mengunduh file jar Apache (pada jawaban ini) 4.5.zip file dari:
https://hc.apache.org/downloads.cgi?Preferred=http%3A%2F%2Fapache.arvixe.com%2F
2 - buka zip, salin file jar ke folder lib Anda. Anda dapat menemukannya jika Anda pergi ke bagian atas proyek Anda di mana dikatakan "Android" Anda akan menemukan daftar ketika Anda mengkliknya. Begitu,
, Lalu letakkan toples di sana.
3- Dalam build.gradle (Module: app) tambahkan
di
4- Di kelas java tambahkan impor ini:
sumber
HttpClient tidak lagi didukung di SDK 23. Rilis Android 6.0 (API Level 23) menghilangkan dukungan untuk klien HTTP Apache. Anda harus menggunakan
dan juga menambahkan potongan kode di bawah ini dalam ketergantungan Anda:
// solusi akhir http untuk layanan web (termasuk mengunggah file)
Ini juga akan membantu Anda saat Anda menggunakan Use MultipartEntity untuk mengunggah File .
sumber
di API 22 mereka menjadi usang dan di API 23 mereka menghapusnya sepenuhnya, solusi sederhana jika Anda tidak memerlukan semua hal-hal mewah dari penambahan baru adalah dengan hanya menggunakan file .jar dari apache yang terintegrasi sebelum API 22, tetapi sebagai file .jar yang dipisahkan:
sumber
Jika Anda ingin mengimpor beberapa kelas seperti:
Anda dapat menambahkan baris berikut di build.gradle (dependensi Gradle)
sumber
Anda bisa menambahkan ini ke dependensi Gradle:
sumber
HttpGet
. Untuk itu saya menggunakancompile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
Rilis Android 6.0 (API Level 23) menghilangkan dukungan untuk klien HTTP Apache. Karenanya Anda tidak dapat menggunakan pustaka ini secara langsung di API 23. Tetapi ada cara untuk menggunakannya. Tambahkan useLibrary 'org.apache.http.legacy' di file build.gradle Anda seperti di bawah ini-
Jika ini tidak berhasil, Anda dapat menerapkan peretasan berikut
- Salin org.apache.http.legacy.jar yang ada di / platform / android-23 / path opsional direktori Android SDK Anda ke folder app / libs proyek Anda.
- Sekarang Tambahkan file kompilasi ('libs / org.apache.http.legacy.jar') di dalam dependensi {} bagian dari file build.gradle.
sumber
Klien ApacheHttp dihapus dalam v23 SDK. Anda dapat menggunakan HttpURLConnection atau Klien Http pihak ketiga seperti OkHttp.
ref:
https://developer.android.com/preview/behavior-changes.html#behavior-apache-http-client
sumber
HttpUrlConnection
sebenarnya dianjurkan sebagai pengganti HttpClientCukup gunakan ini: -
sumber
HttpClient tidak didukung dalam sdk 23 dan 23+.
Jika Anda perlu menggunakan ke SDK 23, tambahkan kode di bawah ini ke gradle Anda:
Ini bekerja untuk saya. Semoga bermanfaat buat Anda.
sumber
Jika Anda membutuhkan SDK 23, tambahkan ini ke gradel Anda:
sumber
Anda harus menambahkan hanya satu baris
ke build.gradle (Module: app), misalnya
sumber
Target API mana yang Anda miliki dalam proyek Anda?
AndroidHttpClient
hanya untuk API Level 8 <. dan silakan lihat di sininikmati kode kamu :)
sumber
Seperti disebutkan sebelumnya,
org.apache.http.client.HttpClient
tidak didukung lagi di:SDK (level API) # 23.
Anda harus menggunakan
java.net.HttpURLConnection
.Jika Anda ingin membuat kode Anda (dan masa pakai) lebih mudah saat menggunakan
HttpURLConnection
, berikut adalahWrapper
kelas ini yang akan memungkinkan Anda melakukan operasi sederhana denganGET
,POST
danPUT
menggunakanJSON
, seperti misalnya, melakukan aHTTP PUT
.Jangan ragu untuk menggunakannya.
sumber
Tambahkan dua baris ini di bawah dependensi
kemudian
di bawah android
sumber
Rekatkan file .jar Anda di "folder libs" di proyek Anda. Kemudian secara bertahap tambahkan baris ini di build.gradle Anda (Modul: aplikasi)
sumber
Kesalahan: (30, 0) Metode DSL Gradle tidak ditemukan: 'classpath ()' Kemungkinan penyebab:
sumber
Untuk android API 28 dan lebih tinggi di Manifest.xml di dalam tag aplikasi
sumber
Saya pikir tergantung pada versi Android Studio yang Anda miliki, penting Anda memperbarui studio android Anda juga, saya menjadi frustrasi juga mengikuti saran semua orang tetapi tidak berhasil, sampai saya harus meng-upgrade versi android saya dari 1,3 ke 1,5, kesalahan menghilang seperti sihir.
sumber