web-dev-qa-db-ja.com

変換JetifyTransformを使用して、ファイル 'some-lib-release.aar'を属性{artifactType = processed-aar}に一致させるために変換できませんでした

私は2つのモジュールを持つプロジェクトを持っています:ビルドタイプdebugrelease、およびenterpriseとKotlinライブラリ(releaseおよびdebug)アプリで使用されます。

AndroidXを使用しており、gradle.propertiesに次のものがあります。

Android.useAndroidX=true
Android.enableJetifier=true

Gradleを介してプロジェクトを実行すると、多数のコンパイルエラーが発生します(予想)。しかし、Android Studio(3.2 Beta 5))内から使用しようとすると、特にGradleモデルと同期しようとすると、次のようになります:

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

私のsettings.gradle

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

ライブラリモジュールは、最終的にこのアプリや他のユーザーが使用する独自のライブラリになりますが、作業中にアプリの一部としてビルドします。 AndroidXに切り替えるまで、問題はありませんでした。

appモジュールは、依存関係を次のように宣言します。

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

依存関係を宣言するときにconfiguration: 'default'ビットを省略すると、次のようになります。

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.

ここで私が間違っていることについてのアイデアはありますか?

17
copolii

私はすでにこれを試していたと誓うことができましたが、ビルドタイプにmatchingFallbacksのセットを指定すると、トリックができました:

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

もっと こちら

5
copolii

これを試して:

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

このエラーは、Jetifiedファイルの破損が原因のようです。

Gradle cachesフォルダーから破損した.aarのみを削除します。

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

「パス」は、おそらくパッケージ名になります(例:com.example.somerelease

フォルダー全体を削除することは、すべての依存関係を再度Jetifiedする必要があるため、最適なソリューションではありません。既に破損の問題が発生している場合は、再び問題が発生する可能性があります。

0
David Rawson

これは私のためにそれを解決しました

File -> Invalidate Caches / Restart

それが誰かを助けることを願っています

0
Aerim

私は解決策を手に入れました.. build.gradle(app)に次の行を入力するだけです

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