support library last features android android-support-library

library - install android support repository



Las versiones resueltas para la aplicaciĆ³n(22.0.0) y la aplicaciĆ³n de prueba(21.0.3) difieren (10)

Consulte https://github.com/JakeWharton/u2020/blob/05a57bf43b9b61f16d32cbe8717af77cd608b0fb/build.gradle#L136-L140

configurations.all { resolutionStrategy { force ''com.android.support:support-annotations:23.1.1'' } }

Esto resolvió mi problema.

Alternativamente, puede ejecutar gradlew en Windows y ./gradlew para mac / linux, esto descargará su dependencia cuando sea necesario

Después de actualizar a API 22 y admitir lib revision 22, recibo la siguiente advertencia:

Advertencia: Conflicto con la dependencia ''com.android.support:support-annotations''. Las versiones resueltas para la aplicación (22.0.0) y la aplicación de prueba (21.0.3) difieren.

Gradle en sí es más indulgente, pero Android Studio, no tanto.

No tengo dependencias declaradas con 21.0.3 ... ¿una de las bibliotecas dependientes usa 21.0.3 y Google olvidó actualizarla con el resto del lote?

Mi build.gradle con los extras recortados

android { compileSdkVersion 22 buildToolsVersion ''22'' defaultConfig { applicationId "com.REDACTED.android" minSdkVersion 14 targetSdkVersion 22 renderscriptSupportModeEnabled true versionName ''1.0.0'' versionCode 100 } buildTypes { release { minifyEnabled true zipAlignEnabled true signingConfig signingConfigs.release } debug { minifyEnabled false zipAlignEnabled true signingConfig signingConfigs.debug } } dependencies { provided ''org.projectlombok:lombok:1.16.2'' googleCompile ''com.google.android.gms:play-services-base:6.5.87'' compile ''com.android.support:support-v4:22.0.0'' compile ''com.android.support:appcompat-v7:22.0.0'' compile ''com.android.support:support-v13:22.0.0'' compile ''com.android.support:cardview-v7:22.0.0'' compile ''com.android.support:palette-v7:22.0.0'' compile ''com.android.support:support-annotations:22.0.0'' compile ''com.github.chrisbanes.photoview:library:1.2.3'' compile ''org.apache.commons:commons-lang3:3.3.2'' compile ''commons-io:commons-io:2.4'' compile ''commons-codec:commons-codec:1.10'' compile ''com.jakewharton:butterknife:6.1.0'' compile ''com.jakewharton:disklrucache:2.0.2'' compile ''com.squareup:otto:1.3.6'' compile ''com.squareup.picasso:picasso:2.5.0'' compile ''com.squareup.retrofit:retrofit:1.9.0'' compile ''com.squareup.okhttp:okhttp:2.2.0'' compile ''com.squareup.okhttp:okhttp-urlconnection:2.2.0'' compile ''com.squareup.okio:okio:1.2.0'' compile ''com.flaviofaria:kenburnsview:1.0.6'' compile ''com.edmodo:cropper:1.0.1'' compile ''com.getbase:floatingactionbutton:1.8.0'' compile ''com.nispok:snackbar:2.10.2'' compile ''com.github.ksoichiro:android-observablescrollview:1.5.0'' compile ''in.srain.cube:grid-view-with-header-footer:1.0.9'' compile ''de.hdodenhof:circleimageview:1.2.2'' compile fileTree(dir: ''libs'', include: ''*.jar'') // Test Only Dependencies androidTestCompile ''com.android.support.test.espresso:espresso-core:2.0'' androidTestCompile ''com.android.support.test:testing-support-lib:0.1'' androidTestCompile ''com.android.support.test.espresso:espresso-contrib:2.0'' }

Actualización: (Gracias Mark)

Parece que es espresso-contrib

+--- com.android.support.test:testing-support-lib:0.1 (*) /--- com.android.support.test.espresso:espresso-contrib:2.0 +--- com.android.support:recyclerview-v7:21.0.3 | +--- com.android.support:support-annotations:21.0.3 | /--- com.android.support:support-v4:21.0.3 | /--- com.android.support:support-annotations:21.0.3 +--- com.android.support:support-v4:21.0.3 (*) /--- com.android.support.test.espresso:espresso-core:2.0 (*)


El paso # 1 cuando se trata con este tipo de cosas es sentirse cómodo con la línea de comandos Gradle.

El paso 2 es ejecutar gradle.org/docs/current/userguide/… (p. Ej., gradle -q app:dependencies desde la raíz del proyecto). Esto proporcionará el árbol ASCII como se muestra en la actualización de la pregunta, y debería ayudarlo a identificar qué está pidiendo las versiones de artefactos en conflicto.

El paso 3 es decidir qué necesita ser reemplazado. Elegiste reemplazar solo el conflicto ( support-annotations ). Personalmente, habría seguido la raíz del árbol de la versión incorrecta ( recyclerview-v7 ), aunque por lo que sé, podría no ser el mejor curso de acción en este caso.

El paso 4 es agregar la directiva de exclude para bloquear lo que eligió en el paso 3:

androidTestCompile (''com.android.support.test.espresso:espresso-contrib:2.0'') { exclude module: ''support-annotations'' }

El paso 5 es probar el diablo de este cambio. Lo que está haciendo es decir que espresso-contrib tiene que lidiar con la edición 22.0.0 de support-annotations de support-annotations . Eso puede funcionar. Eso tal vez no. Depende de la compatibilidad con versiones anteriores del conflicto. En este caso, support-annotations deberían ser bastante buenas al respecto.

El Paso # 6 es consumir la bebida de su elección, una apropiada para su localidad y hora del día.


En realidad, es un error de la nueva versión de actualización de Espresso Contrib, puede consultar esta solución alternativa: android-testing/build.gradle

configurations.all { resolutionStrategy.force ''com.android.support:support-annotations:22.1.0'' }


Estaba teniendo el mismo problema con 26.0.0 y 27.1.1 y en realidad solo actualicé la primera a la posterior para que funcione.


Este es un problema común en la prueba de instrumentación como se indica here y se puede resolver simplemente agregando las dependencias para androidTestCompile dentro de build.gradle. En mi caso, surgieron conflictos en las dependencias de appcompat, recyclerview y design. Y resuelto agregando las siguientes líneas

androidTestCompile ''com.android.support:appcompat-v7:23.4.0'' androidTestCompile ''com.android.support:recyclerview-v7:23.4.0'' androidTestCompile ''com.android.support:design:23.4.0''


Lo que hice para resolverlo fue agregar la siguiente línea a mi script build.gradle

androidTestCompile ''com.android.support:support-annotations:xx.x.x''

Reemplace xx.xx con cualquier versión de anotaciones de soporte que esté usando su aplicación; esto se mostrará en sus dependencias, o el mensaje de sincronización de Gradle como: Resolved version for app (xx.xx) caso de que haya un problema de sincronización.


Simplemente elimine estas líneas en su archivo build.gradle:

androidTestImplementation ''com.android.support.test:runner:1.0.2'' androidTestImplementation ''com.android.support.test.espresso:espresso-core:3.0.2''


También me encontré con este problema y con otros conflictos relacionados con appcompat y la solución que encontré fue agregar compilaciones de prueba y configurarlas en el SDK que está utilizando actualmente. En mi caso son 25, así que se ve así:

androidTestCompile ''com.android.support:support-annotations:25.+'' androidTestCompile ''com.android.support:appcompat-v7:25.+'' androidTestCompile ''com.android.support:support-v4:25.+'' androidTestCompile ''com.android.support:recyclerview-v7:25.+'' androidTestCompile ''com.android.support:design:25.+''

Además, como puede ver, agregué la dependencia de diseño, que está relacionada con Android Material Design.

Espero que ayude =)


para sdkversion 25

androidTestCompile ''com.android.support:support-annotations:25.2.0''


puede ejecutar gradlew en Windows y ./gradlew para mac / linux, esto descargará su dependencia cuando sea necesario.

Puede verificar si una de las bibliotecas depende de la anotación de soporte o si alguna de las bibliotecas tiene un nombre erróneo e intentar excluirla en gradle, como se muestra a continuación

compilar ("org.apache.maven: maven-ant-task: $ {mavenAntTaskVer} ‌") {excluir grupo: ''junit''}

Error: conflicto con la dependencia ''junit: junit''. Las versiones resueltas para la aplicación (3.8.1) y la aplicación de prueba (4.12) difieren. Ver g.co/androidstudio/app-test-app-conflict para más detalles.

este era el error que recibía, así que utilicé la línea de arriba para solucionar el problema