web-dev-qa-db-fra.com

Impossible de transformer le fichier 'some-lib-release.aar' afin qu'il corresponde aux attributs {artefactType = traité-aar} à l'aide de la transformation de JetifyTransform.

J'ai un projet avec 2 modules: une application (Java) avec les types de construction debug, release et enterprise et une bibliothèque Kotlin (release et debug) utilisée par l'application.

J'utilise AndroidX et j'ai le code suivant dans mon gradle.properties:

Android.useAndroidX=true
Android.enableJetifier=true

Si j'exécute le projet via Gradle, j'obtiens de nombreuses erreurs de compilation (attendues). Mais si j'essaie de l'utiliser depuis Android Studio (3.2 Beta 5), ​​en particulier lorsque j'essaie de synchroniser avec le modèle Gradle, j'obtiens ceci:

Unable to resolve dependency for ':app@debug/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@debugAndroidTest/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@debugUnitTest/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@release/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@releaseUnitTest/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@enterprise/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform
Unable to resolve dependency for ':app@enterpriseUnitTest/compileClasspath': Failed to transform file 'some-lib-release.aar' to match attributes {artifactType=processed-aar} using transform JetifyTransform

Mon settings.gradle:

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

Le module de bibliothèque sera éventuellement sa propre bibliothèque utilisée par cette application et par d'autres, mais pendant que je travaille dessus, je la construis en tant que partie de l'application. Les choses fonctionnaient bien jusqu'à ce que je passe à AndroidX.

Le module app déclare la dépendance comme suit:

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

Si je laisse le bit configuration: 'default' lors de la déclaration de dépendance, je reçois:

Unable to resolve dependency for ':app@enterprise/compileClasspath': Could not resolve project :some-lib.
Unable to resolve dependency for ':app@enterpriseUnitTest/compileClasspath': Could not resolve project :some-lib.

Des idées sur ce que je fais mal ici?

7
copolii

Je pouvais jurer que j'avais déjà essayé cela, mais spécifier un ensemble de matchingFallbacks pour les types de construction a fait l'affaire:

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

Plus ici

1
copolii

Essaye ça:

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