无法在对象...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
中注释掉的内容。
我看到这是一个常见错误: “在 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
中注释掉的内容。