Der Fluch von minCompileSdk (31): So besiegen Sie den AAR-Fehler in Kotlin

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einleitung: Ihr Projekt baut nicht? Sie sind nicht allein

\n\n

Stellen Sie sich vor: Sie programmieren in Kotlin, alles läuft hervorragend, aber plötzlich – bumm! – bricht der Build mit einer rätselhaften Meldung ab: The minCompileSdk (31) specified in a dependency's AAR metadata. Kommt Ihnen das bekannt vor? Dieser Fehler ist einer der beliebtesten "Stolpersteine" auf Stack Overflow (tausende Aufrufe und hunderte Kommentare). Er tritt auf, wenn Sie eine Bibliothek verwenden, die eine neuere Version des compileSdk erfordert, als in Ihrem Projekt eingestellt ist.

\n\n

In diesem Artikel analysieren wir, wie Sie den Fehler minCompileSdk (31) in AAR-Metadaten für Projekte in Kotlin und Java beheben. Sie erfahren die Ursachen, erhalten fertige Lösungen und verstehen, wie Sie dieses Problem in Zukunft vermeiden. Los geht's!

\n\n

Was ist minCompileSdk und warum zerstört es den Build?

\n\n

Beginnen wir mit der Theorie. Jedes Android-Projekt hat sein eigenes compileSdk – die Version des Android SDK, mit der es kompiliert wird. Bibliotheken (AAR) können ebenfalls ein minimales compileSdk angeben, das sie benötigen. Wenn Ihre Version niedriger ist, gibt Gradle einen Fehler aus. Dies ist ein Schutz vor Inkompatibilität: Die Bibliothek könnte APIs verwenden, die in älteren SDKs nicht vorhanden sind.

\n\n

Der Fehler The minCompileSdk (31) specified in a dependency's AAR metadata sagt wörtlich: "Hey, diese Bibliothek erfordert eine Kompilierung mit SDK 31 (Android 12) oder höher, aber bei dir ist eine niedrigere Version eingestellt!".

\n\n

Typische Szenarien für das Auftreten

\n
    \n
  • Sie haben eine neue Bibliothek hinzugefügt (z.B. androidx.compose oder Firebase), die auf Anforderungen von SDK 31+ aktualisiert wurde.
  • \n
  • Sie verwenden eine alte Projektvorlage mit compileSdk = 30.
  • \n
  • Sie haben vergessen, Gradle und die SDK-Tools zu aktualisieren.
  • \n
\n\n

So beheben Sie den Fehler minCompileSdk (31) in AAR: 3 bewährte Methoden

\n\n

Hier sind die Schritt-für-Schritt-Lösungen für Kotlin und Java. Beachten Sie: Der Code ist durchgängig in Kotlin (DSL), aber die Logik ist für Groovy identisch.

\n\n

Methode 1: compileSdk erhöhen (empfohlen)

\n

Der korrekteste Weg ist, das compileSdk auf die von der Bibliothek geforderte Version zu aktualisieren. Normalerweise ist dies 31 (Android 12) oder 33 (Android 13).

\n\n

Schritte:

\n
    \n
  1. Öffnen Sie die Datei build.gradle.kts (Modulebene app).
  2. \n
  3. Suchen Sie den Abschnitt android.
  4. \n
  5. Ändern Sie compileSdk auf den erforderlichen Wert.
  6. \n
\n\n
android {\n    compileSdk = 33 // Oder 31, 32 – je nach Anforderung\n\n    defaultConfig {\n        minSdk = 21\n        targetSdk = 33\n        // ...\n    }\n}\n
\n\n

Warum funktioniert das? Sie erfüllen einfach die Anforderungen der Abhängigkeit. Wenn die Bibliothek SDK 31 verlangt, geben Sie ihr SDK 31. Vergessen Sie nicht, das entsprechende SDK auch in Android Studio zu installieren (SDK Manager → Android 12.0 (API 31)).

\n\n

Methode 2: Bibliotheksversion herabstufen

\n

Wenn Sie das compileSdk nicht erhöhen möchten (z.B. wegen Kompatibilität mit älteren Geräten), können Sie die Bibliothek auf eine Version zurücksetzen, die kein SDK 31 erfordert.

\n\n

Beispiel: Verwenden Sie anstelle von implementation("androidx.compose:compose-bom:2023.10.01") eine ältere Version, z.B. 2022.10.00.

\n\n
dependencies {\n    // War (verursacht Fehler)\n    // implementation("androidx.compose:compose-bom:2023.10.01")\n\n    // Ist (stabile Version ohne Anforderung von SDK 31+)\n    implementation("androidx.compose:compose-bom:2022.10.00")\n}\n
\n\n

Dies ist eine temporäre Lösung, hilft aber, wenn Sie auf einem alten SDK feststecken. Der Hauptnachteil ist, dass Sie neue Funktionen und Sicherheitsupdates verlieren.

\n\n

Methode 3: minCompileSdk über Gradle überschreiben (exotisch)

\n

Es gibt eine knifflige, aber undokumentierte Methode – die AAR-Metadaten über die Gradle-Konfiguration überschreiben. Diese Methode wird für die Produktion nicht empfohlen, kann aber retten, wenn die Bibliothek nicht aktualisiert wird.

\n\n
andr                

Blogs

Buchempfehlungen