Androidプロジェクト、純粋なJavaプロジェクトに依存しています。両方とも別のJavaライブラリ、 Android Studio。そのライブラリの2つのバージョンがあり、両方のAndroidとJavaプロジェクトデバッグモードでそれらの1つに依存し、リリースで別の-に依存します。
Android project?For pure Java project?How?
ビルドタイプ(デバッグ、リリース、またはカスタム)は、独自の依存関係を持つことができます。
ビルドタイプに固有の依存関係を指定するには、次の手順を実行します。
dependencies {
debugCompile "mydebugdependency"
releaseCompile "myreleasedependency"
}
JavaプロジェクトとAndroidプロジェクトが両方ともgradleを使用している場合、build.gradleファイルの両方で上記を実行できます。
buildDebug
依存関係も無視されていました。私のセットアップはアプリモジュールとライブラリモジュールであり、ビルドタイプをアプリからライブラリモジュールに伝達する必要があります。つまり、アプリでデバッグタイプをコンパイルするときに、ライブラリデバッグタイプも取得する必要があります。
前述のように、app gradle
ファイルの各ビルドタイプに特定の依存関係を持たせようとしましたが、役に立ちませんでした。
buildTypes {
debug {
debuggable true
applicationIdSuffix ".debug"
dependencies {
debugCompile project(":library")
}
}
}
最終的に私にとってのトリックはこれでした: http://tools.Android.com/tech-docs/new-build-system/user-guide#TOC-Library-Publication
したがって、ライブラリの依存関係はapp gradle
ファイルのグローバルな依存関係スコープで(通常どおり)管理されます。
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
releaseCompile project(path: ':library', configuration: 'release')
debugCompile project(path: ':library', configuration: 'debug')
}
ライブラリのgradleビルドファイルにこれを追加する必要がありました:
Android {
publishNonDefault true
}
これにより、すべての依存関係のビルドタイプが公開されます。依存関係をコンパイルするのに時間がかかる場合、このソリューションは適切ではない可能性があることに注意してください。
次のパターンを使用してこれを行うことができます
build_variant_namedependency_configurations "依存"
build_variant_namedependency_configurationsproject(path: ':libName'、configuration: 'build_variant_name of libName')
例えば
dependencies {
FreeDebugImplementation "dependency"
PaidReleaseApi project(path: ':libName', configuration: 'release')
}
ビルドバリアントの詳細については、こちらをご覧ください- https://developer.Android.com/studio/build/build-variants 依存関係の構成- https://developer.Android.com/studio/build/gradle-plugin-3-0-0-migration#new_configurations