私は2つのモジュールを持つプロジェクトを持っています:ビルドタイプdebug
、release
、および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.
ここで私が間違っていることについてのアイデアはありますか?
私はすでにこれを試していたと誓うことができましたが、ビルドタイプにmatchingFallbacks
のセットを指定すると、トリックができました:
buildTypes {
release {
// blah blah
matchingFallbacks = ['release']
}
enterprise {
// blah blah
matchingFallbacks = ['release']
}
debug {
// blah blah
matchingFallbacks = ['debug']
}
}
もっと こちら
これを試して:
implementation fileTree(include:[':some-lib'], dir: "../lib/path")
このエラーは、Jetifiedファイルの破損が原因のようです。
Gradle cachesフォルダーから破損した.aarのみを削除します。
rm ~/.gradle/caches/modules-2/files-2.1/path-to/some-release.aar
「パス」は、おそらくパッケージ名になります(例:com.example.somerelease
フォルダー全体を削除することは、すべての依存関係を再度Jetifiedする必要があるため、最適なソリューションではありません。既に破損の問題が発生している場合は、再び問題が発生する可能性があります。
これは私のためにそれを解決しました
File -> Invalidate Caches / Restart
それが誰かを助けることを願っています
私は解決策を手に入れました.. build.gradle(app)に次の行を入力するだけです
compileOptions {
sourceCompatibility '1.8'
targetCompatibility '1.8'
}