尝试将模块添加到项目。未找到 ID 为“kotlin-android”的插件

Vas*_*lev 7 android module gradle

我正在尝试将 epub 阅读器库添加到我已经创建的项目中。我试图作为模块添加到我的项目中的库是 Folio Reader Library ( https://github.com/FolioReader/FolioReader-Android )。我已经在我的电脑上下载了这个库,并尝试通过文件 -> 新建 -> 导入模块添加它。但是,在此过程中我收到此错误:

ERROR: Plugin with id 'kotlin-android' not found.
Run Code Online (Sandbox Code Playgroud)

该文件位于 Folio Reader 库的 build.gradle 文件中。

build.gradle 文件:

apply plugin: 'com.android.library'
apply from: '../config/quality/quality.gradle'
apply plugin: 'com.github.dcendents.android-maven'
apply plugin: 'kotlin-android'
apply plugin: 'kotlin-android-extensions'

ext {
bintrayRepo = 'maven'
bintrayName = 'folioreader'

publishedGroupId = 'com.folioreader'
libraryName = 'FolioReader'
artifact = 'folioreader'

libraryDescription = 'An epub reader for Android'

siteUrl = 'https://github.com/FolioReader/FolioReader-Android'
gitUrl = 'https://github.com/FolioReader/FolioReader-Android.git'

libraryVersion = versions.folioreaderSdk

developerId = 'mobisystech'
developerName = 'Folio Reader'
developerEmail = 'mahavir@codetoart.com'

licenseName = 'FreeBSD License'
licenseUrl = 'https://en.wikipedia.org/wiki/FreeBSD_Documentation_License#License'
allLicenses = ["FreeBSD"]
}

android {
useLibrary 'org.apache.http.legacy'
compileSdkVersion versions.androidCompileSdk

defaultConfig {
    minSdkVersion versions.androidMinSdk
    targetSdkVersion versions.androidTargetSdk
    versionCode versions.projectVersionCode
    versionName versions.projectVersionName
    vectorDrawables.useSupportLibrary = true
}

sourceSets {
    main {
        manifest.srcFile 'AndroidManifest.xml'
        java.srcDirs = ['src/main/java']
        res.srcDirs = ['res']
    }
    test {
        java.srcDirs = ['src/test/java']
    }
}

packagingOptions {
    exclude 'META-INF/ASL2.0'
    exclude 'META-INF/DEPENDENCIES.txt'
    exclude 'META-INF/LICENSE.txt'
    exclude 'META-INF/NOTICE.txt'
    exclude 'META-INF/NOTICE'
    exclude 'META-INF/LICENSE'
    exclude 'META-INF/DEPENDENCIES'
    exclude 'META-INF/notice.txt'
    exclude 'META-INF/license.txt'
    exclude 'META-INF/dependencies.txt'
    exclude 'META-INF/LGPL2.1'
    exclude 'META-INF/services/javax.annotation.processing.Processor'
}

lintOptions {
    abortOnError false
    lintConfig file("lint.xml")
}

checkstyle {
    ignoreFailures = true
}
}

apply from: '../folioreader/bintray/installv1.gradle'
dependencies {
implementation fileTree(include: ['*.jar'], dir: 'libs')

implementation "androidx.appcompat:appcompat:$versions.appcompat"
implementation "androidx.constraintlayout:constraintlayout:$versions.constraintLayout"
implementation "androidx.recyclerview:recyclerview:$versions.recyclerview"
implementation "com.google.android.material:material:$versions.material"
testImplementation 'junit:junit:4.12'

implementation 'org.slf4j:slf4j-android:1.7.25'
implementation 'com.daimajia.swipelayout:library:1.2.0@aar'

//Kotlin
implementation "org.jetbrains.kotlin:kotlin-stdlib:$versions.kotlin"

implementation 'org.greenrobot:eventbus:3.1.1'

implementation "com.fasterxml.jackson.core:jackson-core:$versions.jackson"
implementation "com.fasterxml.jackson.core:jackson-annotations:$versions.jackson"
implementation "com.fasterxml.jackson.core:jackson-databind:$versions.jackson"
implementation "com.fasterxml.jackson.module:jackson-module-kotlin:$versions.jackson"
implementation "com.google.code.gson:gson:$versions.gson"

implementation "com.squareup.retrofit2:retrofit:$versions.retrofit"
implementation "com.squareup.retrofit2:converter-jackson:$versions.retrofit"
implementation "com.squareup.retrofit2:converter-gson:$versions.retrofit"

// R2 modules
api("com.github.codetoart:r2-shared-kotlin:$versions.r2SharedKotlin") {
    changing = true
}
api("com.github.codetoart:r2-streamer-kotlin:$versions.r2StreamerKotlin") {
    exclude group: "org.slf4j", module: "slf4j-api"
    changing = true
}

// Only ReflectionUtils in Spring framework is used
implementation 'org.springframework:spring-core:4.3.19.RELEASE'

// Lifecycle
implementation "androidx.lifecycle:lifecycle- 
extensions:$versions.lifecycle"
}
apply from: '../folioreader/bintray/bintrayv1.gradle'
Run Code Online (Sandbox Code Playgroud)

我已经尝试了这里发布的一些答案,但它们不起作用。我怎么解决这个问题?

编辑:

我加了

classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.1.4-3"
Run Code Online (Sandbox Code Playgroud)

在我的依赖项中并收到以下错误:

ERROR: Could not get unknown property 'versions' for object of type org.gradle.api.internal.plugins.DefaultExtraPropertiesExtension.
Run Code Online (Sandbox Code Playgroud)

它发生在同一个 build.gradle 文件的第 20 行:

libraryVersion = versions.folioreaderSdk
Run Code Online (Sandbox Code Playgroud)

更新到新版本不起作用:

classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.40"
Run Code Online (Sandbox Code Playgroud)

Vin*_*hwa 5

看Github上的库结构,看来需要做如下操作

  • 转到您的项目级 build.gradle 文件(不是模块级 build.gradle)
  • 查看库的项目级别 build.gradle 文件中的存储库和依赖,并将它们复制到您的项目级别 build.gradle 文件(包括 kotlin-gradle-plugin 依赖项)

注意:如果您之前没有使用过External变量语法,您可以在 github 存储库根目录中找到该库的这些变量。

在这种情况下,写

classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$versions.kotlin"` 
Run Code Online (Sandbox Code Playgroud)

将解析为以下(你可以直接在你的项目中写这个)

classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.11" 
Run Code Online (Sandbox Code Playgroud)