【发布时间】:2020-09-15 06:45:33
【问题描述】:
我正在尝试通过 Kotlin 多平台库设置 Android 库。
我收到错误:
Plugin [id: 'com.android.library'] was not found in any of the following sources:
请帮助我指出问题所在以及如何解决此问题。
我的插件设置是这样的(应该是正确的构建脚本):
plugins {
id("org.jetbrains.kotlin.plugin.serialization").version("1.3.72")
id("com.android.library")
id("org.jetbrains.kotlin.multiplatform").version("1.3.72")
id("com.squareup.sqldelight")
}
当我用以下替换它时
plugins {
id("org.jetbrains.kotlin.multiplatform").version("1.3.72")
id("org.jetbrains.kotlin.plugin.serialization").version("1.3.72")
}
apply plugin: 'com.android.library'
apply plugin: 'com.squareup.sqldelight'
它工作正常。 我不确定是什么导致了这个问题。
以下是完整的 build.gradle:
buildscript {
repositories {
mavenCentral()
jcenter()
google()
}
dependencies {
classpath 'com.squareup.sqldelight:gradle-plugin:1.3.0'
classpath 'com.android.tools.build:gradle:3.6.3'
}
}
plugins {
id("org.jetbrains.kotlin.plugin.serialization").version("1.3.72")
id("com.android.library")
id("org.jetbrains.kotlin.multiplatform").version("1.3.72")
id("com.squareup.sqldelight")
}
repositories {
mavenCentral()
jcenter()
google()
}
group 'com.jolas.sdk.kn.newsycore'
version '0.0.1'
android {
compileSdkVersion 29
buildToolsVersion "29.0.3"
defaultConfig {
minSdkVersion 16
targetSdkVersion 29
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
consumerProguardFiles 'consumer-rules.pro'
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}
}
def ktor_version = '1.3.2'
kotlin {
android {
publishLibraryVariants("release", "debug")
}
// This is for iPhone simulator
// Switch here to iosArm64 (or iosArm32) to build library for iPhone device
iosX64("ios") {
binaries {
framework()
}
}
sourceSets {
commonMain {
dependencies {
implementation kotlin('stdlib-common')
implementation "io.ktor:ktor-client-core:$ktor_version"
implementation "io.ktor:ktor-client-serialization:$ktor_version"
}
}
commonTest {
dependencies {
implementation kotlin('test-common')
implementation kotlin('test-annotations-common')
}
}
androidMain {
dependencies {
implementation kotlin('stdlib')
implementation "io.ktor:ktor-client-okhttp:$ktor_version"
implementation "io.ktor:ktor-client-serialization-jvm:$ktor_version"
implementation "com.squareup.sqldelight:sqlite-driver:1.3.0"
}
}
iosMain {
dependencies {
implementation kotlin('stdlib')
implementation "io.ktor:ktor-client-ios:$ktor_version"
implementation "io.ktor:ktor-client-serialization-native:$ktor_version"
implementation "com.squareup.sqldelight:native-driver:1.3.0"
}
}
}
}
sqldelight {
NewsyDatabase {
packageName = "com.jolas.sdk.kn.newsycore"
}
}
configurations {
compileClasspath
}
【问题讨论】:
-
你好,@Harley!您能否添加有关您的错误的更多详细信息?还应该有一个来源列表,可能缺少这个插件的那个。
-
当然。 @ArtyomDegtyarev。请下载这个项目github.com/jolasjoe/newsy-core你会在root-dir中找到build.gradle文件。在该文件中,如果您删除行 apply plugin: 'com.android.library' 并在 plugins 部分添加 id("com.android.library") 您将能够重现该问题。
标签: android gradle android-library gradle-plugin kotlin-multiplatform