51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

Android报错:No signature of method:build_*.android() is applicable for argument types解决方法

前言 {#前言}

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脚本的修改:

  1. 是否添加的层次结构不正确, 例如 ndk 应该在 defaultConfig 闭包中
  2. build.gradle结构错误(是否有大小写不正确的,字符串连接错误以及大括号错位等结构错误),例如:拼写错误 defaultConfig写成 DefaultConfig

具体情况 {#具体情况}

我发生这种情况是因为:

  1. Android Studio的版本较高
  2. 编译版本较高30,所以提示build.gradleandroid插件有问题

发生问题的配置:

|-----------|---------------------------------------------| | 1 | apply plugin: 'com.android.library' |

将其修改为如下的配置:

|-----------------|--------------------------------------------------------------------------------| | 1 2 3 4 | plugins { id 'com.android.library' id 'org.jetbrains.kotlin.android' } |

配置修改后问题就解决了。


赞(1)
未经允许不得转载:工具盒子 » Android报错:No signature of method:build_*.android() is applicable for argument types解决方法