it-swarm.com.de

Die Datei 'some-lib-release.aar' konnte nicht in die Attribute {artifactType = verarbeitete-aar} mit der Transformation JetifyTransform umgewandelt werden

Ich habe ein Projekt mit 2 Modulen: eine App (Java) mit den Buildtypen debug, release und enterprise und einer Kotlin-Bibliothek (release und debug), die von der App verwendet wird.

Ich verwende AndroidX und habe Folgendes in meinem gradle.properties:

Android.useAndroidX=true
Android.enableJetifier=true

Wenn ich das Projekt durch Gradle starte, erhalte ich eine Reihe von Kompilierfehlern (erwartet). Wenn ich jedoch versuche, es in Android Studio (3.2 Beta 5) zu verwenden, insbesondere beim Versuch, mit dem Gradle-Modell zu synchronisieren, erhalte ich Folgendes:

Unable to resolve dependency for ':[email protected]/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':[email protected]/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':[email protected]/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':[email protected]/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':[email protected]/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':[email protected]/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':[email protected]/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform

Mein settings.gradle:

include ':app',':some-lib'
project(':some-lib').projectDir = file ('../some-lib/lib')

Das Bibliotheksmodul wird schließlich eine eigene Bibliothek sein, die von dieser App und anderen verwendet wird, aber während ich daran arbeite, baue ich es als Teil der App. Die Dinge funktionierten gut, bis ich zu AndroidX wechselte.

Das Modul app deklariert die Abhängigkeit als:

implementation project(path: ':some-lib', configuration: 'default')

Wenn ich bei der Deklaration der Abhängigkeit das configuration: 'default'-Bit weglasse, bekomme ich:

Unable to resolve dependency for ':[email protected]/compileClasspath': Could not resolve project :some-lib.
Unable to resolve dependency for ':[email protected]/compileClasspath': Could not resolve project :some-lib.

Irgendwelche Ideen, was ich hier falsch mache?

7
copolii

Ich konnte schwören, dass ich dies bereits versucht hatte, aber die Angabe eines Satzes von matchingFallbacks für die Build-Typen hat den Trick:

buildTypes {
    release {
        // blah blah
        matchingFallbacks = ['release']
    }
    enterprise {
        // blah blah
        matchingFallbacks = ['release']
    }
    debug {
        // blah blah
        matchingFallbacks = ['debug']
    }
}

Mehr hier

1
copolii

Versuche dies:

implementation fileTree(include:[':some-lib'], dir: "../lib/path")
1
Chris Lacy

Der Fehler scheint durch beschädigte Jetified-Dateien verursacht zu werden.

Löschen Sie NUR das beschädigte .aar aus dem Gradle-Cache-Ordner:

rm ~/.gradle/caches/modules-2/files-2.1/path-to/some-release.aar

Der "Pfad zu" wird wahrscheinlich der Paketname sein, z. B. com.example.somerelease

Das Löschen des gesamten Ordners ist keine optimale Lösung, da alle Abhängigkeiten erneut überprüft werden müssen. Wenn Sie bereits Korruptionsprobleme haben, tritt das Problem wahrscheinlich erneut auf.

0
David Rawson

Das hat es für mich gelöst

File -> Invalidate Caches / Restart

Hoffe es hilft jemandem

0
Aerim

Ich habe die Lösung. Geben Sie einfach die folgenden Zeilen in build.gradle (app) ein.

compileOptions {
        sourceCompatibility '1.8'
        targetCompatibility '1.8'
    }
0
Abhishek Dhyani