Controlla le tue dipendenze per gli usi di +
nelle versioni. Potrebbe essere utilizzata una certa dipendenza com.android.support:appcompat-v7:+
. Ciò porta a problemi quando viene rilasciata una nuova versione e potrebbe rompere le funzionalità.
La soluzione per questo sarebbe usare com.android.support:appcompat-v7:{compileSdkVersion}.+
o non usare +
affatto e utilizzare la versione completa (es. com.android.support:appcompat-v7:26.1.0
).
Se non riesci a vedere una riga nei tuoi file build.gradle per questo, esegui nel terminale di Android Studio per dare una panoramica di ciò che utilizza ciascuna dipendenza
gradlew -q dependencies app:dependencies --configuration debugAndroidTestCompileClasspath
(includi le dipendenze di androidtest)
O
gradlew -q dependencies app:dependencies --configuration debugCompileClasspath
(dipendenze regolari per il debug)
che si traduce in qualcosa che si avvicina a questo
------------------------------------------------------------
Project :app
------------------------------------------------------------
debugCompileClasspath - Resolved configuration for compilation for variant: debug
...
+--- com.android.support:appcompat-v7:26.1.0
| +--- com.android.support:support-annotations:26.1.0
| +--- com.android.support:support-v4:26.1.0 (*)
| +--- com.android.support:support-vector-drawable:26.1.0
| | +--- com.android.support:support-annotations:26.1.0
| | \--- com.android.support:support-compat:26.1.0 (*)
| \--- com.android.support:animated-vector-drawable:26.1.0
| +--- com.android.support:support-vector-drawable:26.1.0 (*)
| \--- com.android.support:support-core-ui:26.1.0 (*)
+--- com.android.support:design:26.1.0
| +--- com.android.support:support-v4:26.1.0 (*)
| +--- com.android.support:appcompat-v7:26.1.0 (*)
| +--- com.android.support:recyclerview-v7:26.1.0
| | +--- com.android.support:support-annotations:26.1.0
| | +--- com.android.support:support-compat:26.1.0 (*)
| | \--- com.android.support:support-core-ui:26.1.0 (*)
| \--- com.android.support:transition:26.1.0
| +--- com.android.support:support-annotations:26.1.0
| \--- com.android.support:support-v4:26.1.0 (*)
+--- com.android.support.constraint:constraint-layout:1.0.2
| \--- com.android.support.constraint:constraint-layout-solver:1.0.2
(*) - dependencies omitted (listed previously)
Se non hai il controllo sulla modifica della versione, prova a costringerla a utilizzare una versione specifica.
configurations.all {
resolutionStrategy {
force "com.android.support:appcompat-v7:26.1.0"
force "com.android.support:support-v4:26.1.0"
}
}
La dipendenza dalla forza potrebbe dover essere diversa a seconda di ciò che viene impostato su 28.0.0
compileSdkVersion 27
ecompileSdkVersion 28
, passandocompileSdkVersion
a28
, ho risolto il problema.