2017-09-19 4 views
1

My app/build.gradle kleiner sein:Android, Firebase: Manifest Fusion gescheitert: uses-sdk: minSdkVersion 15 nicht als Version 16

apply plugin: 'com.android.application' 

android { 
    compileSdkVersion 26 
    buildToolsVersion "26.0.1" 
    defaultConfig { 
     applicationId "com.example.firebase" 
     minSdkVersion 15 
     targetSdkVersion 26 
     versionCode 1 
     versionName "1.0" 
     testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" 
    } 
    buildTypes { 
     release { 
      minifyEnabled false 
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 
     } 
    } 
} 

dependencies { 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
    androidTestCompile('com.android.support.test.espresso:espresso-core:2.2.2', { 
     exclude group: 'com.android.support', module: 'support-annotations' 
    }) 
    compile 'com.android.support:appcompat-v7:26.+' 
    compile 'com.android.support.constraint:constraint-layout:1.0.2' 

    compile 'com.google.firebase:firebase-auth:11.0.4' 
    compile 'com.firebaseui:firebase-ui-auth:2.3.0' 
    compile "com.android.support:design:26.1.0" 
    compile "com.android.support:customtabs:26.1.0" 
    compile "com.android.support:cardview-v7:26.1.0" 

    testCompile 'junit:junit:4.12' 
} 


apply plugin: 'com.google.gms.google-services' 

Aber wenn ich versuche mein Android-Projekt erstellen ich Fehler:

Error:Execution failed for task ':app:processDebugManifest'. 
> Manifest merger failed : uses-sdk:minSdkVersion 15 cannot be smaller than version 16 declared in library [com.firebaseui:firebase-ui-auth:2.3.0] 

ich kann nicht minSdkVersion ändern, weil dies die Anforderung des Client ist - laufen Adnroid Anwendung auf min. ver = 15

+0

Sie können es nicht tun. Der Firebase Ui hat eine minSDK = 16. In jedem Fall mit api = 16 decken Sie die 99% der Geräte ab. Was ist dein Problem?? Überprüfen Sie https://developer.android.com/about/dashboards/index.html –

+0

Das Problem ist ..., dass dies die Anforderung des Kunden ist, minSdkVersion = 15 – user8542613

+1

** Es ändert sich nicht die Antwort, können Sie nicht auch wenn sie wollen! ** Überprüfen Sie das Armaturenbrett. Niemand hat ein Gerät mit api15. In jedem Fall können Sie 2 Versionen machen. Einer mit minSdk = 15 und maxSdk = 15, ein anderer mit minSdk = 16. Überprüfen Sie https://developer.android.com/training/multiple-apks/api.html. –

Antwort

1

I can't change minSdkVersion because this is the client's requirement - run Adnroid application on min. ver = 15

Sie kann es nicht tun, da einige Abhängigkeiten mit minSdk = 16 verwenden (in Ihrem Fall die firebase-ui hat eine minSdk = 16).

Sie können eine ältere Version der Abhängigkeiten wählen, aber Sie werden immer Probleme in der Zukunft haben, da Sie sie nicht aktualisieren können.

Wie Sie in der official dashboard überprüfen können, heute mit minSdk = 16 werden Sie über die 99% der Geräte abdecken.

In jedem Fall, wenn es eine starke Anforderung des Kunden ist, können Sie create multiple APKs for Different API Levels.

Dies bedeutet, dass Sie verschiedene Aromen in Ihrem Build.gradle mit einer anderen Ebene von API und anderen Abhängigkeiten erstellen können. Auf diese Weise können Sie sowohl das Gerät mit api 15 als auch die neuen Versionen der verwendeten Bibliotheken unterstützen.

productFlavors { 

    // priority than the second, and so on. 
    minApi15 { 
     minSdkVersion '15' 
     ... 
    } 

    minApi16 { 
     minSdkVersion '16' 
    } 
} 

dependencies { 
    minApi15Compile xxxxx 
    minApi16Compile xxxxx 
} 
1

Um dieses Problem zu lösen, müssen Sie die Version Ihres com.firebaseui:firebase-ui-auth:2.3.0 downgraden.

2.3.0 ist die neueste Version. Gemäß FirebaseUI-Android müssen Sie eine frühere Version verwenden, die es Ihnen ermöglicht, minSdkVersion 15 zu verwenden.

Ich hoffe, es hilft.

Verwandte Themen