Android Studio로 작성된 간단한 수업이 있습니다.
package com.mysite.myapp;
import org.apache.http.client.HttpClient;
public class Whatever {
public void headBangingAgainstTheWallExample () {
HttpClient client = new DefaultHttpClient();
}
}
이로부터 다음과 같은 컴파일 시간 오류가 발생합니다.
Cannot resolve symbol HttpClient
HttpClient
Android Studio SDK에 포함되어 있지 않습니까? 그렇지 않더라도 Gradle 빌드에 다음과 같이 추가했습니다.
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:23.0.0'
compile 'org.apache.httpcomponents:httpclient:4.5'
}
마지막 컴파일 라인 유무에 관계없이 오류는 동일합니다. 내가 무엇을 놓치고 있습니까?
답변
HttpClient
SDK 23에서 더 이상 지원되지 않습니다. URLConnection
SDK 22 를 사용 하거나 다운 그레이드해야합니다 (compile 'com.android.support:appcompat-v7:22.2.0'
)
SDK 23이 필요하면 이것을 gradle에 추가하십시오.
android {
useLibrary 'org.apache.http.legacy'
}
HttpClient jar을 프로젝트에 직접 다운로드하여 포함 시키거나 OkHttp를 대신 사용할 수도 있습니다.
답변
HttpClient는 API 레벨 22에서 더 이상 사용되지 않고 API 레벨 23에서 제거되었습니다. 필요한 경우 API 레벨 23 이상에서 계속 사용할 수 있지만 지원되는 메소드로 이동하여 HTTP를 처리하는 것이 가장 좋습니다. 따라서 23으로 컴파일하는 경우 build.gradle에 이것을 추가하십시오.
android {
useLibrary 'org.apache.http.legacy'
}
답변
아래 링크에서 TejaDroid의 답변이 도움이되었습니다. Android Studio에서 org.apache.http.HttpResponse를 가져올 수 없습니다
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.android.support:appcompat-v7:23.0.1'
compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
...
}
답변
SDK 레벨 23에 Apache HTTP를 사용하려면 다음을 수행하십시오.
최상위 build.gradle-/build.gradle
buildscript {
...
dependencies {
classpath 'com.android.tools.build:gradle:1.5.0'
// Lowest version for useLibrary is 1.3.0
// Android Studio will notify you about the latest stable version
// See all versions: http://jcenter.bintray.com/com/android/tools/build/gradle/
}
...
}
gradle 업데이트에 대한 Android Studio의 알림 :
모듈 별 build.gradle-/app/build.gradle
android {
compileSdkVersion 23
buildToolsVersion "23.0.2"
...
useLibrary 'org.apache.http.legacy'
...
}
답변
이것을 시도해보십시오. build.gradle 파일 에이 종속성을 추가하십시오
compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2'
답변
1-Apache jar 파일 (이 답변 기준) 4.5.zip 파일 :
https://hc.apache.org/downloads.cgi?Preferred=http%3A%2F%2Fapache.arvixe.com%2F
2- zip 파일을 열어 jar 파일을 libs 폴더에 복사하십시오. 프로젝트 상단으로 이동하면 “Android”라고 표시되며, 클릭하면 목록이 표시됩니다. 그래서,
안드로이드-> 프로젝트-> 앱-> libs
그런 다음 항아리를 넣으십시오.
3- build.gradle (모듈 : 앱) 추가
compile fileTree(dir: 'libs', include: ['*.jar'])
에
dependency {
}
4- Java 클래스에서 다음 가져 오기를 추가하십시오.
import org.apache.http.HttpResponse;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.params.CoreProtocolPNames;
답변
SDK 23에서는 HttpClient가 더 이상 지원되지 않습니다. Android 6.0 (API 레벨 23) 릴리스는 Apache HTTP 클라이언트에 대한 지원을 제거합니다. 당신은 사용해야합니다
android {
useLibrary 'org.apache.http.legacy'
.
.
.
또한 종속성에 아래 코드 스 니펫을 추가하십시오.
// 웹 서비스를위한 http 최종 솔루션 (파일 업로드 포함)
compile('org.apache.httpcomponents:httpmime:4.3.6') {
exclude module: 'httpclient'
}
compile 'org.apache.httpcomponents:httpclient-android:4.3.5'
당신이 사용 사용하는 동안 그것은 또한 당신을 도울 것입니다 MultipartEntity를 위한 파일 업로드 .