无法在对象...DefaultDependencyHandler 上找到参数 [...] 的方法实现()

Could not find method implementation() for arguments [...] on object...DefaultDependencyHandler

我看到这是一个常见错误: “在 org.gradle.api.internal.artifacts.dsl.dependencies.DefaultDependencyHandler 类型的对象上找不到参数 [com.github.mik3y:usb-serial-for-android:3.3.0] 的方法实现()”

但是 none 的正常解决方案对我有用。

build.gradle:

buildscript {
    repositories {
        jcenter()
        google()
    }
    dependencies {
        classpath 'com.android.tools.build:gradle:4.1.2'
        implementation 'com.github.mik3y:usb-serial-for-android:3.3.0'
    }
}

allprojects {
    repositories {
        jcenter()
        google()
        maven { url 'https://jitpack.io' }
    }
}

app.gradle:

apply plugin: 'com.android.library'

android {
    compileSdkVersion 29
    buildToolsVersion '29.0.3'

    defaultConfig {
        minSdkVersion 17
        targetSdkVersion 29
        consumerProguardFiles 'proguard-rules.pro'
        
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
        testInstrumentationRunnerArguments = [                    // Raspi   Windows   LinuxVM   ...
                'rfc2217_server_host': '192.168.0.100',
                'rfc2217_server_nonstandard_baudrates': 'true',   // true    false     false
        ]
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation "androidx.annotation:annotation:1.1.0"
    testImplementation 'junit:junit:4.13'
    androidTestImplementation 'com.android.support.test:runner:1.0.2'
    androidTestImplementation 'commons-net:commons-net:3.6'
    androidTestImplementation 'org.apache.commons:commons-lang3:3.11'
//    implementation 'com.github.mik3y:usb-serial-for-android:3.3.0'
}

gradle-wraper.properties:

#Tue Oct 13 21:20:09 CEST 2020
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip

通常的解决方案是获取更新的 gradle 和更新的 gradle 插件。但是我有最新版本。那么有没有我不知道的解决这个问题的新方法?

谢谢,迈克

buildscript 块中定义的依赖项仅支持 classpath 配置,因此 implementation 被拒绝并显示您提供的错误消息。类路径依赖项仅适用于构建脚本本身。通常,它们提供额外的功能,例如通过添加额外的插件。在这里阅读更多相关信息:External dependencies for the build script.

也就是说,usb-serial-for-android 需要在 buildscript 块之外定义才能工作。

dependencies {
    implementation 'com.github.mik3y:usb-serial-for-android:3.3.0'
}

这是您在 app.gradle 中注释掉的内容。