前言 {#前言}
Android项目在Sync时报错:No signature of method:build_*.android() is applicable for argument types。
具体错误信息 {#具体错误信息}
|---------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 1 2 3 4 5 6 7 8 9 10 11 12 13
| Build file 'D:\MyWork\android\libUVCCamera\build.gradle' line: 9 A problem occurred evaluating project ':libUVCCamera'. > No signature of method: build_h7kylzcp3803twlrw5j3ezyi.android() is applicable for argument types: (build_h7kylzcp3803twlrw5j3ezyi$_run_closure1) values: [build_h7kylzcp3803twlrw5j3ezyi$_run_closure1@1a6d7d22] * Try: > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. Caused by: groovy.lang.MissingMethodException: No signature of method: build_h7kylzcp3803twlrw5j3ezyi.android() is applicable for argument types: (build_h7kylzcp3803twlrw5j3ezyi$_run_closure1) values: [build_h7kylzcp3803twlrw5j3ezyi$_run_closure1@1a6d7d22] at build_h7kylzcp3803twlrw5j3ezyi.run(D:\MyWork\android\libUVCCamera\build.gradle:9) at org.gradle.groovy.scripts.internal.DefaultScriptRunnerFactory$ScriptRunnerImpl.run(DefaultScriptRunnerFactory.java:91) ... 170 more
|
原因分析 {#原因分析}
从错误信息来看,其实是说你的build.gradle
脚本内容错误,一般是在各个闭包中,添加了不正确的已知闭包实现。
例如 android{}
闭包中增加大小写不正确的 DefaultConfig
等。
解决方法 {#解决方法}
检查最近对build.gradle
脚本的修改:
- 是否添加的层次结构不正确, 例如
ndk
应该在defaultConfig
闭包中 build.gradle
结构错误(是否有大小写不正确的,字符串连接错误以及大括号错位等结构错误),例如:拼写错误defaultConfig
写成DefaultConfig
具体情况 {#具体情况}
我发生这种情况是因为:
- Android Studio的版本较高
- 编译版本较高30,所以提示
build.gradle
的android
插件有问题
发生问题的配置:
|-----------|---------------------------------------------|
| 1
| apply plugin: 'com.android.library'
|
将其修改为如下的配置:
|-----------------|--------------------------------------------------------------------------------|
| 1 2 3 4
| plugins { id 'com.android.library' id 'org.jetbrains.kotlin.android' }
|
配置修改后问题就解决了。