Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


'Org.apache.http.HttpEntity' está obsoleto. ¿Cómo solucionar este error en android studio?

Estoy usando el API22 de android studio y tengo estos errores:

'org.apache.http.HttpEntity' is deprecated 'org.apache.http.HttpResponse' is deprecated 'org.apache.http.NameValuePair' is deprecated 'org.apache.http.client.HttpClient' is deprecated 'org.apache.http.client.entity.UrlEncodedFormEntity' is deprecated 'org.apache.http.client.methods.HttpPost' is deprecated 'org.apache.http.impl.client.DefaultHttpClient' is deprecated 'org.apache.http.message.BasicNameValuePair' is deprecated 'org.apache.http.params.BasicHttpParams' is deprecated 'org.apache.http.params.HttpConnectionParams' is deprecated 'org.apache.http.params.HttpParams' is deprecated 'org.apache.http.util.EntityUtils' is deprecated 

Como puedo resolver esto?

  • Limitación de la velocidad de fotogramas con Thread.sleep ()
  • Uso de la biblioteca Java en el proyecto iOS
  • Actualizar Android TextView
  • Transmitir audio en vivo de Android al servidor
  • Android-library con la dependencia específica de Flavors de Producto
  • Cómo probar si el cursor está vacío en una consulta SQLiteDatabase
  • Libgdx Android en la aplicación sencilla tutorial
  • En Android, ¿cómo puedo encontrar el llamador de un método de manera eficiente
  • 7 Solutions collect form web for “'Org.apache.http.HttpEntity' está obsoleto. ¿Cómo solucionar este error en android studio?”

    Añada esto a su gradle

     useLibrary 'org.apache.http.legacy' 

    Ejemplo

     android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { minSdkVersion 14 targetSdkVersion 23 versionCode 2 versionName "1.0.1" } buildTypes { release { debuggable false signingConfig signingConfigs.releaseConfig minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debugSigned { debuggable true signingConfig signingConfigs.releaseConfig } debug { debuggable true } } useLibrary 'org.apache.http.legacy' } 

    Citando a mí mismo :

    Si necesita continuar usando la API de HttpClient, considere cambiar a OkHttp y su capa de compatibilidad HttpClient, o considere el cambiar a la edición de Android de Hespertt . De lo contrario, cambie a HttpURLConnection o la API nativa de OkHttp.

    O bien, dependiendo de lo que esté utilizando HttpClient, utilice una biblioteca de redes más específica (Retrofit para servicios Web, Picasso o Universal Image Loader para imágenes, etc.).

    También tenga en cuenta que HttpClient se quita del SDK para la M Developer Preview, lo que indica que se eliminará en la próxima edición de Android. Mientras hay una solución para continuar utilizando HttpClient en M , realmente necesita mover a otra cosa.

    La versión del cliente Apache HTTP en Android disponible era muy muy antigua .

    Google Android 1.0 fue lanzado con una instantánea pre-BETA de Apache HttpClient. Para coincidir con la primera versión de Android, las API de Apache HttpClient 4.0 tuvieron que ser congeladas prematuramente, mientras que muchas de las interfaces y estructuras internas aún no estaban completamente desarrolladas. Como Apache HttpClient 4.0 estaba madurando el proyecto esperaba que Google incorporara las últimas mejoras de código en su árbol de código. Desafortunadamente no sucedió.

    Si no desea cambiar a una nueva API, puede agregar manualmente una versión más reciente de la biblioteca Apache HttpClient a su proyecto para reemplazar la antigua versión obsoleta en SDK de Android <22.

    La forma más sencilla de hacerlo cuando se apunta a SDK 23+ es utilizar el nuevo paquete Apache HttpClient de Marek Sebera para Android (como lo sugiere Apache ), que podría funcionar como reemplazo. Simplemente agregue la siguiente dependencia al archivo build.gradle (actualizando el número de versión si es apropiado):

    compile "cz.msebera.android:httpclient:4.4.1.1"

    Y reemplazar import org.apache.http.* Con import cz.msebera.android.httpclient.* todas partes de su proyecto.

    Tenga en cuenta que muchas clases de la antigua biblioteca están obsoletas (por ejemplo, HttpParams , ThreadSafeClientConnManager ), por lo que volver a escribir el código probablemente va a ser una solución mejor.


    Edit: Encontré algunos casos en los que los usuarios estaban recibiendo excepciones de tiempo de espera tras los servidores proxy después de actualizarlos al cliente Http más reciente. Dado que el código está lleno de advertencias obsoletas en todas partes, decidimos que no valía la pena intentar solucionar el problema. Recomiendo probar muy a fondo antes de intentar poner esto en producción.

    Como se menciona en otras respuestas, una solución mucho mejor es morder la bala y cambiar a la HttpUrlConnection nativa HttpUrlConnection Android, o si eso no satisface sus necesidades, puede utilizar la biblioteca OkHttp , que es lo que HttpUrlConnection se basa internamente en De todos modos .

    HttpClient desperccionado de android lollypop 5.1 (API 22): –
    Pero todavía podemos usar HttpClient usando código siguiente en el estudio de Android: –
    Ir al archivo de aplicación \ build.gradle:

     defaultConfig { applicationId "com.XXXXX.XXX" minSdkVersion 16 targetSdkVersion 23 ----------- ----------- useLibrary 'org.apache.http.legacy' } 

    [O ALTERNATIVA]

    Descargue y agregue archivos HttpClient jar a su proyecto o utilice okHttp .

    Descargue el archivo org.apache.http.legacy jar desde aquí .

    En el archivo build.gradle , escriba el código siguiente

     defaultConfig { useLibrary 'org.apache.http.legacy' } 

    Guarde el archivo .jar descargado en la siguiente ubicación

     ./sdk/platforms/android-23/optional/(.jar file) 

    Estoy usando android-23 bajo plataformas, depende del nivel de API que esté usando. Si la carpeta opcional no existe, cree la carpeta opcional y pegue el archivo .jar antes de sincronizar el proyecto gradle.

    Uso después de la dependencia en su Gradle

     dependencies { compile 'org.jbundle.util.osgi.wrapped:org.jbundle.util.osgi.wrapped.org.apache.http.client:4.1.2' } 

    Añada esto a su gradle

     useLibrary 'org.apache.http.legacy' 

    Ejemplo

     android { compileSdkVersion 23 buildToolsVersion "23.0.1" defaultConfig { minSdkVersion 14 targetSdkVersion 23 versionCode 2 versionName "1.0.1" } buildTypes { release { debuggable false signingConfig signingConfigs.releaseConfig minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } debugSigned { debuggable true signingConfig signingConfigs.releaseConfig } debug { debuggable true } } useLibrary 'org.apache.http.legacy' } 

    Esta biblioteca le permitirá utilizarlo sin problema, al menos no he tenido ningún problema hasta ahora con él.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.