J'ai besoin de rétrograder mon minsdk pour garder la compatibilité avec certains appareils, donc j'ai besoin de rétrograder ma version de minsdk16 -> 15. Mais j'ai cette erreur:
La fusion du manifeste a échoué: uses-sdk: minSdkVersion 15 ne peut pas être plus petit que la version 16 déclarée dans la bibliothèque [com.github.flipagram: android-assetcopier: 0.1.1] C: \ Users \ beto_.gradle \ caches \ transforms-1 \ files-1.1 \ android-assetcopier-0.1.1.aar \ 7ee049aa00fd85016b1a1ae60ce050df \ AndroidManifest.xml car la bibliothèque peut utiliser des API non disponibles dans 15 Suggestion: utiliser une bibliothèque compatible avec un minSdk d'au plus 15, ou augmenter la version minSdk de ce projet à au moins 16, ou utiliser tools: overrideLibrary = "flipagram.assetcopylib" pour forcer l'utilisation (peut conduit à des échecs d'exécution)
Ceci est mon build.grandle actuel, mais quand je change le minsdk en 16, j'obtiens l'erreur montrée précédemment.
implementation 'com.github.flipagram:android-assetcopier:0.1.1'
Si je comprends bien, mon erreur est sur cette dépendance:
apply plugin: 'com.android.application'
android {
compileSdkVersion 28
buildToolsVersion '28.0.3'
defaultConfig {
applicationId "my.package.id"
minSdkVersion 15
targetSdkVersion 28
versionCode 510
versionName "5.1.0"
manifestPlaceholders = [manifestApplicationId : "${applicationId}",
onesignal_app_id : "myonesingeid",
onesignal_google_project_number: "myprojectnumber"]
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
testImplementation 'junit:junit:4.12'
implementation 'go.swlib.gojni:swlib:1.0@aar'
//noinspection GradleCompatible
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'com.android.support:design:28.0.0'
implementation 'com.onesignal:OneSignal:3.+@aar'
implementation 'com.google.android.gms:play-services-gcm:16.0.0'
implementation "com.google.android.gms:play-services-location:16.0.0"
implementation 'com.google.android.gms:play-services-ads:17.1.2'
implementation 'com.github.quentin7b:android-location-tracker:3.2'
implementation 'com.google.firebase:firebase-core:16.0.6'
implementation 'com.google.firebase:firebase-messaging:17.3.4'
// implementation 'com.google.firebase:firebase-ads:17.1.2'
implementation 'com.google.firebase:firebase-crash:16.2.1'
implementation 'org.jetbrains:annotations-java5:15.0'
implementation 'com.github.hotchemi:android-rate:1.0.1'
implementation 'com.github.flipagram:android-assetcopier:0.1.1'
}
apply plugin: 'com.google.gms.google-services'
J'espère que vous pouvez aider! Merci!
3 Réponses :
Le niveau minimum du SDK requis pour utiliser les versions les plus récentes des bibliothèques Firebase est 16. Il n'y a pas de solution de contournement à cela, à part la sauvegarde vers une version beaucoup plus ancienne de ces bibliothèques.
Dans la documentation , il est indiqué:
<½Précédents
Un appareil en cours d'exécution:
- Android 4.1 (API niveau 16, Jelly Bean) ou version ultérieure
- Services Google Play 15.0.0 ou version ultérieure
alors, qu'est-ce que je peux faire? descendre la version de firebase? pouvez-vous m'aider avec certaines versions pour rétrograder pls
Et, une autre question, dans mon erreur de débogage, ne dit rien sur Firebase ...?
Il y a un tas de bibliothèques qui ne prennent pas en charge moins de 16. Cela ne vaut vraiment pas la peine d'essayer de prendre en charge ces très vieux périphériques qui n'ont pas été mis à jour.
@ AlbertoAcuña dans votre cas, il se peut que ce ne soit pas Firebase, il semble que votre erreur com.github.flipagram: android-assetcopier: 0.1.1 nécessite une version plus récente.
@Quinn donc si je le supprime, peut-être que cela peut fonctionner? ou rétrograder d'une manière ou d'une autre?
Vous rencontrerez à nouveau le même problème pour Firebase et à nouveau pour les services Play. Ils nécessitent tous deux le niveau d'API 16.
@ AlbertoAcuña Je ne recommande pas d'essayer de le supprimer, comme Doug l'a dit, de nombreuses bibliothèques nécessitent le niveau d'API 16+, je ne recommanderais pas d'essayer de prendre en charge <1% des appareils exécutant des versions obsolètes d'Android
@Quinn oui, mais je dois continuer à prendre en charge tous les appareils après une mise à jour, donc je ne peux pas les laisser sans service, car l'application plante.
Changez le niveau minimum du SDK en minSdkVersion 16 .
Avec Android Studio ouvert, dans le menu, sélectionnez:
Fichier> Structure du projet
Dans la fenêtre Structure du projet, sélectionnez:
Modules puis Default Config
Dans le champ de texte Version minimale du SDK, saisissez 16 puis appuyez sur OK