studio permisos oreo descargar android android-studio android-gradle android-studio-3.0 android-gradle-3.0

permisos - api 26 android



commons-logging define las clases que entran en conflicto con las clases que ahora proporciona Android despuĆ©s de la actualizaciĆ³n de Android Studio (7)

He actualizado Android Studio a la versión 3 y ahora parece que no puedo compilar mi proyecto previamente compilado sin errores.

El mensaje de error es el siguiente.

Error: Error: commons-logging define las clases que entran en conflicto con las clases que ahora proporciona Android. Las soluciones incluyen encontrar nuevas versiones o bibliotecas alternativas que no tengan el mismo problema (por ejemplo, para httpclient use HttpUrlConnection u okhttp en su lugar), o volver a empaquetar la biblioteca usando algo como jarjar. [DuplicatePlatformClasses]

Las dependencias son

dependencies { compile fileTree(include: [''*.jar''], dir: ''libs'') testCompile ''junit:junit:4.12'' compile ''com.android.support:appcompat-v7:27.0.0'' compile ''com.android.support:design:27.0.0'' compile ''com.google.api-client:google-api-client-android:1.23.0'' exclude module: ''httpclient'' compile ''com.google.http-client:google-http-client-gson:1.23.0'' exclude module: ''httpclient'' compile ''com.google.firebase:firebase-core:11.4.2'' }

y el error parece ser causado por

compile ''com.google.api-client:google-api-client-android:1.23.0'' exclude module: ''httpclient'' compile ''com.google.http-client:google-http-client-gson:1.23.0'' exclude module: ''httpclient''

Ya uso el exclude module: ''httpclient'' Entonces, ¿por qué no se compila? ¿Se trata de un error de Android Studio 3 o / o está incluido el complemento com.android.tools.build:gradle:3.0.0 o me estoy perdiendo algo? Con la versión anterior no hay problema para compilar exactamente el mismo proyecto.


Agregar a build.gradle ubicado en el módulo de la aplicación

configurations { all { exclude module: ''httpclient'' } }


Como ''org.apache.httpcomponents: httpclient: 4.3.3'' está en desuso después de SDKversion 23, así

reemplace esto:

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

con

compile ''org.apache.httpcomponents:httpclient:4.3.3''


Debe reemplazar "compilar" con "implementación", ya que está en desuso en la versión más reciente y excluir "org.apache.httpcomponents" de las bibliotecas de cliente de Google API:

implementation(''com.google.api-client:google-api-client-android:1.23.0'') { exclude group: ''org.apache.httpcomponents'' } implementation(''com.google.http-client:google-http-client-gson:1.23.0'') { exclude group: ''org.apache.httpcomponents'' }

esta solución se encontró aquí: https://developers.google.com/google-apps/activity/v1/quickstart/android


Ejecutar en la terminal, dentro de la carpeta del proyecto:

./gradlew app:dependencies > dependencies.txt

Luego verifique dependencies.txt para encontrar quién está usando dependencias conflictivas y actuar en consecuencia (verifique las actualizaciones, deshágase de ellas o use excluir como lo sugiere @Silverstorm)


Si desea continuar con async-http , agregue a continuación el siguiente código solo en app/build.gradle

configurations { all { exclude module: ''commons-logging'' } }


Si el problema es con el registro de bienes comunes, también debe excluirse. Agregue el siguiente código en app / build.gradle

configurations { all { exclude module: ''httpclient'' exclude module: ''commons-logging'' } }


Tiene el mismo problema. He hecho los siguientes cambios

configurations { all{ exclude group: ''commons-logging'', module: ''commons-logging'' exclude group: ''org.apache.httpcomponents'' } } packagingOptions { exclude ''META-INF/LICENSE.txt'' exclude ''META-INF/LICENSE'' exclude ''META-INF/NOTICE.txt'' exclude ''META-INF/NOTICE'' exclude ''org/apache/http/version.properties'' exclude ''org/apache/http/client/version.properties'' }