Kotlinを1.3.30に更新しましたが、gradleを同期するときにこのエラーが発生します。
警告:API 'variant.getPackageLibrary()'は廃止され、 'variant.getPackageLibraryProvider()'に置き換えられました。 2019年末に削除される予定です。詳しくは、 https://d.Android.com/r/tools/task-configuration-avoidance をご覧ください。何がvariant.getPackageLibrary()を呼び出しているかを判別するには、コマンドラインで-Pandroid.debug.obsoleteApi = trueを使用してスタックトレースを表示します。影響を受けるモジュール:hydatabase
これが私のbuild.gradle
:
apply plugin: 'com.squareup.sqldelight'
apply plugin: 'kotlin-multiplatform'
apply plugin: 'com.Android.library'
Android {
compileSdkVersion 28
defaultConfig {
minSdkVersion 19
}
lintOptions {
abortOnError false
}
}
sqldelight {
Database {
packageName = "com.company.hydatabase"
}
}
kotlin {
targets {
fromPreset(presets.jvm, 'jvm')
fromPreset(presets.Android, 'Android')
}
sourceSets {
commonMain.dependencies {
api 'org.jetbrains.kotlin:kotlin-stdlib-common'
}
jvmMain.dependencies {
api 'org.jetbrains.kotlin:kotlin-stdlib-jdk8'
// ICU4J: Use DecimalFormat
// Get rid of this when minSDKLevel = API 24 - Nougat (7.0)
// https://developer.Android.com/guide/topics/resources/internationalization.html
api 'com.ibm.icu:icu4j:60.2'
}
androidMain.dependencies {
implementation 'org.jetbrains.kotlin:kotlin-stdlib'
api "com.squareup.sqldelight:Android-driver:1.1.1"
}
androidMain.dependsOn jvmMain
}
}
task copyDatabase(type: Copy) {
from "${rootProject.file('hyappcommon/Databases/').path}"
into "${rootProject.file('hydatabase/src/main/assets/databases/').path}"
include '**/*.sqlite'
}
preBuild.dependsOn(copyDatabase)
// workaround for https://youtrack.jetbrains.com/issue/KT-27170
configurations {
compileClasspath
}
このコマンドはルートプロジェクトで実行できます
gradlew -Pandroid.debug.obsoleteApi=true
そして警告は消えます。
「v1.3.40-release-Studio3.4-1」プラグインに更新されました。
あなたが見ることができるように https://youtrack.jetbrains.com/issue/KT-30784
ライブラリプラグインでkotlinプラグインを使用すると、この問題が発生しました。アプリケーションプラグインでkotlinプラグインを使用すると、うまく機能することがわかりました。しかし、kotlinプラグインをライブラリプラグインと一緒に使用すると、この問題が発生します。つまり:
// work well:
apply plugin: 'com.Android.application'
apply plugin: 'kotlin-Android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-Android-extensions'
// error:
apply plugin: 'com.Android.library'
apply plugin: 'kotlin-Android'
apply plugin: 'kotlin-kapt'
apply plugin: 'kotlin-Android-extensions'
エラーがそれを表示したので、./gradlew -Pandroid.debug.obsoleteApi=true --stacktrace
この問題の原因となったモジュールを確認する。
その後、私のモジュールの1つが上記の間違ったプラグインの組み合わせを使用していることがわかりました。そして、それはkotlinプラグインのバグのようです。それで、最後に、kotlinプラグインをアップグレードしましたが、うまくいきました。以下は、最終的に使用したkotlinプラグインです。
buildscript {
ext.kotlin_version = '1.3.40'
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.Android.tools.build:gradle:3.4.1'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}