2
votes

Android, Firebase: minSdkVersion 15 ne peut pas être inférieur à la version 16

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!


0 commentaires

3 Réponses :


3
votes

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

8 commentaires

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.



0
votes

Changez le niveau minimum du SDK en minSdkVersion 16 .


0 commentaires

1
votes

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


0 commentaires