如何修复 ERROR: 没有方法的签名: build_ap86oam3dut3pxce3x49rdtma. android() ?

错误: 没有方法的签名: build _ ap86oam3dut3pxce3x49rdtma. android ()适用于参数类型: (build _ ap86oam3dut3pxce3x49rdtma $_ run _ closure1)值: [ build _ ap86oam3dut3pxce3x49rdtma $_ run _ closure1@47588b04]

构建级别是:

apply plugin: 'com.android.application'


android{
implementationSdkVersion 28
buildToolsVersion "29.0.3"
defaultConfig {
applicationId "com.uiresource.taksiku"
minSdkVersion 16
targetSdkVersion 28
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
vectorDrawables.useSupportLibrary = true
}
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}


dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
androidTestImplementation('com.android.support.test.espresso:espresso-core:2.3-alpha', {
exclude group: 'com.android.support', module: 'support-annotations'
})
implementation "com.android.support:appcompat-v7:$var"
implementation 'com.android.support:design:28.0.0'
testimplementation 'junit:junit:4.13'
implementation 'com.android.support.constraint:constraint-layout:2.0.0-beta5'
implementation 'de.hdodenhof:circleimageview:3.1.0'
}
132710 次浏览

我是 Android 的新手,但是今天当我尝试在 Android Studio 4.1金丝雀上使用不同版本(不是建议的版本)的 Gradle 插件和 Gradle 引擎时,我收到了一条类似的信息。

当我在我的 App build. gradle 上有这些行:

task wrapper(type: Wrapper){
gradleVersion = '5.6.4'
}

在我的模块上,这条线

classpath 'com.android.tools.build:gradle:3.6.3'

这是我在之前的设置中得到的信息:

A problem occurred evaluating project ':app'.
> No signature of method: build_5dcjpn4h9nkpym0yszxs5w2uh.android() is applicable for argument types: (build_5dcjpn4h9nkpym0yszxs5w2uh$_run_closure1) values: [build_5dcjpn4h9nkpym0yszxs5w2uh$_run_closure1@2e4515b3]

我发现解决这个错误的方法是在 build.gradle 模块上更改 gradle 插件的版本,如下所示

classpath 'com.android.tools.build:gradle:4.0.0'

我希望这能帮到你。 编程愉快!

我有相同的错误消息,直到我注释掉 android 插件中除了编译 sdk 版本之外的所有内容,试图回到一个成功的构建配置。

android {
compileSdkVersion 23
/*
...
*/
}

然后,我开始删除注释,直到我将问题缩小到错误地使用以下内容。

ProductFlavors {
...
}

我不确定您是否使用了相同的块,但是目前,我将它注释掉了,因为我不确定是否需要它。但是,一旦我摆脱了它,我就会收到关于 sdk root dir 位置的其他错误,所以我能够修复这些错误。

希望这个能帮上忙!

确保您使用的是 kotlin android 插件而不是 kotlin jvm 插件。

apply plugin: 'kotlin-android' // NOT kotlin-jvm

您所能做的最好的事情就是注释 build.gradle文件中与问题相关的部分,直到您得到一个良好的构建,然后逐一取消注释,直到您发现问题为止。我有同样的错误,它与一个应用程序 build.gradle块中的一个打字错误有关。我用的是:

android {
...
buildFeature {
...
}
}

而不是

android {
...
buildFeatures {
...
}
}

祝你好运!

我也有同样的问题,非常严重。

我首先在这里追踪 已废弃的 Grade 功能不兼容的答案,然后跑进终端

cd android && ./gradlew clean && ./gradlew :app:bundleRelease

Gradlew 命令给出了更详细的反馈,结果我的 Java 和 JDK 是32位的,而不是64位,而且也过时了... ..。

这导致了进一步的错误,但可以一步一步地解决它们: 初始堆大小无效-Xms4096M 找不到 tools.jar。请检查 C: Program Files Javajre1.8.0 _ 151是否包含有效的 JDK 安装

尝试在应用程序级别的 build.gradle文件中注释这一点

openOptions {
disable 'InvalidPackage'
}

我得到了一个类似的错误,因为 versionCode是从一个属性文件中提取的,但是 version Code 需要是一个整数,而不是字符串,所以需要 toInteger()

干得漂亮,机器人。

我在 gradle 文件的 buildTypes 下面添加了 debug,在“ API _ URL”后面漏掉了一个逗号:

不工作:

buildTypes {
...
debug {
buildConfigField "String", "API_URL" "\"http://myapi.com/\""
}
}

工作:

buildTypes {
...
debug {
buildConfigField "String", "API_URL", "\"http://myapi.com/\""
}
}

祝你好运!

我也有类似的问题,因为我在 android/app/build.gradle 的 defaultConfig 中添加了一个后跟逗号 ,

在我的情况下,我需要在渐变中注释掉这些线条

androidExtensions{
experimental = true
}

这是因为 build.gradle 的 android{..}部分存在语法错误 您已经使用了 implementationSdkVersion,理想情况下应该是 compileSdkVersionandroid{..}中变量名的错误会导致这样的错误。

极低密度辐射;

compileSdkVersion代替 implementationSdkVersion

在我的例子中,错误原因如下

compilpepeeSdkVersion

而不是

compileSdkVersion

如果您使用的是 kotlin 版本1.4.21或更新的版本,则不推荐使用 kotlin-android 扩展。 因此,如果你删除插件,你也必须删除 android 实验性扩展块。 在我的情况下,我必须删除这些代码片段。

apply plugin: 'kotlin-android-extensions'




androidExtensions {
experimental = true
}

但如果上面没有修复它

这是一种常见的和/或 包装错误,它隐藏了真正的原因和/或问题,因此要查看实际的错误消息,可以尝试这样的操作:

./gradlew :app:assembleDebug --stacktrace

而是搜索结果真正的错误消息。

谢谢你提到只是评论和测试,对我来说是:

kapt {
useBuildCache = true
}

移除了它,一切又重新开始了。 是在更新 Kotlin 版本之后发生的。

旧问题,但值得注意的是,如果您看到这个问题,您可能需要遵循这里的迁移指南:

Https://developer.android.com/topic/libraries/view-binding/migration

对我来说,删除 apply plugin: 'kotlin-android-extensions'行并添加视图绑定(如下所示)解决了这个问题:

buildFeatures {
viewBinding true
}

我从 Github 检查了一个非常老的项目,通过将应用程序级别的 build.gradle文件与我当前的项目匹配,找到了解决方案,因此解决方案是替换

runProguard false

minifyEnabled false

它一定是在后来的构建中被弃用和删除了,这导致了类似的问题—— No signature of method: build_6f958jjxpxn7lllu9wu5brezx.android()

我把这个问题加起来后得到了这个问题

kapt {
// etc
}

因为我没有加上:

apply plugin: 'kotlin-kapt'

对我来说,原因是错误拼写了 gradle 的本机库命令,比如版本更新和旧教程。

    externalNativeBuild {
ndkBuild {
path 'Android.mk'
}
}


...
// But i had:
externalNativeBuild {
ndk {
path 'Android.mk'
}
}

但是,正如许多答案所表明的那样,这个问题有几种可能性。
很可能在某些版本更新后,一些 gradle 函数不再可用。

对我来说,问题出在这个街区

defaultConfig {
applicationId "abc"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 12.1 **-> 13**
versionName "3"
}

“ versionCode”不能是十进制数

在添加了扑动口味之后,我一直在纠结这个错误。显然,如果你有包含 -的味道名称,它不会工作。

例如,将名称从 test-preprod转换为 test_preprod,现在正在工作。

我遇到了一个类似于@LalitFauzdar 的问题,但解决方案不同。我正在使用的一个插件需要自定义 ProGuard 规则来进行版本构建,但是在 app gradle 文件中添加对规则文件的引用会导致出现问题的错误。下面是一句被注释掉的冒犯性的话:

buildTypes {
release {
signingConfig signingConfigs.release
// proguardFiles 'proguard-rules.pro'
}
}

对我来说是 kotlinOptions里面的 useIR true

当我在 build.gradle 应用程序模块文件中添加了以下两种产品风格时,我出现了这个错误:

productFlavors {
normal-sv1 {
...
}
normal-sv2 {
...
}
}

我们发现这个错误是由于口味名称中间的“-”造成的。 如下所示,当我使用“ _”而不是“-”时,错误消失了。

productFlavors {
normal_sv1 {
...
}
normal_sv2 {
...
}
}

我试图在我的项目中添加可打包的插件。我的情况也是同样的错误。因为,JetBrains 将 Parcelize从 Kotlin 的 Android 扩展中提取到了一个新的插件 Kotlin-Parcelize

因此,如果你想在 kotlin 中添加容易包装的产品,请遵循以下步骤:

首先,您需要添加 kotlin-parcelize 插件到您的模块

plugins {
..
id 'kotlin-parcelize'
}

然后将旧的 import 语句从

import kotlinx.android.parcel.Parcelize

import kotlinx.parcelize.Parcelize

例如:

import kotlinx.parcelize.Parcelize


import android.os.Parcelable


@Parcelize
class User(


val name: String,
val age: Int


): Parcelable

大多数情况下,如果您使用“匕首/柄”,则其缺少的依赖项

  • 确保将其添加到项目级 build.graddle 中
   dependencies {
// ....
classpath "com.google.dagger:hilt-android-gradle-plugin:$hilt_version"
    

}
  • 在 app 级别 build.graddle 中添加 hilt 插件
plugins {
//....
id 'dagger.hilt.android.plugin'
}
  • 添加完整的刀柄和匕首依赖项
   //hilt


implementation "com.google.dagger:hilt-android:$hilt_version"


// Dagger Core
implementation "com.google.dagger:dagger:2.28"
kapt "com.google.dagger:dagger-compiler:2.28"


// Dagger Android
api 'com.google.dagger:dagger-android:2.35.1'
api 'com.google.dagger:dagger-android-support:2.31'
kapt 'com.google.dagger:dagger-android-processor:2.31'


//Dagger - Hilt
implementation "com.google.dagger:hilt-android:2.32-alpha"
kapt "com.google.dagger:hilt-android-compiler:2.28-alpha"

这个问题通常与 build.gradle 文件的一些更改有关,例如在我的案例中,就是该文件的 defaultConfig 部分中的这一行:

versionCode 1.1

我改成了:

versionCode 2

解决问题。

这是 android {}闭包中的 gradle 文件中的某个语法错误。如果你也有同样的问题,那么这个问题的最佳解决方案就是注释掉 android {}中的部分代码,继续运行分级同步,直到构建成功。然后慢慢地添加回注释掉的行,直到找到罪魁祸首。

对于我来说,问题在于 Gradle 插件更新助手替换了这个:

aaptOptions {
noCompress "..."
}

用这个:

androidResources {
noCompress '...'
}

撤消它,解决了构建错误。当然,这只是一个解决方案。

对我来说,我在 项目build.gradle中将 firebase-crashlytics-gradle从2.5.2升级到了2.7.1,这导致了问题的产生。

dependencies {
[...]
classpath "com.google.firebase:firebase-crashlytics-gradle:2.7.1
}

我删除了一个不必要的 firebaseCrashlytics配置在我的 应用程序模块 build.grade,然后它再次工作:

// TODO this entire block had to be deleted to fix the issue
firebaseCrashlytics {
mappingFileUploadEnabled = false
}

我从我的格拉德尔中删除了这段代码:

javaCompileOptions {
annotationProcessorOptions {
includeCompileClasspath true
}
}

我在创建一个新的 喷气背包构图项目时收到了这个错误。‘ app’模块的 build.gradle 崩溃了。

移除 包装选择对我起到了作用->

packagingOptions {
        

resources {
excludes += '/META-INF/{AL2.0,LGPL2.1}'
}
        

}
}

Android Studio 2021.1.1 Canary 12中,我删除了

plugins{
...
id 'kotlin-android-extensions'
}

但是忘了把这个从

android{
androidExtensions {
experimental = true
}
}

删除 android 扩展块后,我的问题解决了

这个错误没有唯一的解决方案,除了它是 build.gradle文件中的语法错误。

这个问题在 Flutter 2.8中很常见

  1. 删除文件夹与所有子文件夹的 C:\Users\LENOVO\.gradle

  2. 转到 档案菜单 > 设定(Ctrl+Alt+S) 转到 外观及行为 > 系统设定 > Android SDK > SDK 工具栏 然后取消选中 Android SDK Build-Tool Android SDK 构建工具好的按钮 3)在 Andriod Studio 运行 abc0计划它会从互联网下载所有需要的文件并解决你的问题

    enter image description here

之后,如果问题没有得到解决,那么第二步是:

  1. 在您的项目中执行 > android\app\build.gradle > minSdkVersion 19 or 20 //Remove it,因为在 flutter 2.8中,16默认为 minSdkVersion //minSdkVersion flutter.minSdkVersion
  2. 如果文件大小从限制增加,则添加 MultiDexEnable 真

enter image description here

把这条线拿开,它会起作用的。

Include 包括 CompileClasspath true

今天我在创建带签名的 apk 时遇到了这个错误,我在安装 playstore 时犯了一个错误,在 android/app/build.gradle 中

signingConfigs{
debug{
.....
.....
}
release {....}  // I added the release config outside the signing config
}

正确的做法,只是为了裁判

我把 signingConfig拼错成了 signingConfigs

所以它实际上是 signingConfig signingConfigs.{yourVariantName}

而不是 signingConfigs signingConfigs.{yourVariantName}

在 Android Studio Bumblebee (2021.1)中,我遇到了同样的问题:

自动生成的 build.gradle 包含了这个:

buildTypes {
release {
minifyEnabled false
proguardFiles
getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
}
}

请注意,proguardFiles“ function call”的参数位于单独的一行,这不是有效的 Groovy 代码。

在我的情况下,我需要删除以下 app/build.gradle:

packagingOptions {
jniLibs {
pickFirsts += ['lib/armeabi-v7a/libc++_shared.so', 'lib/arm64-v8a/libc++_shared.so', 'lib/x86/libc++_shared.so', 'lib/x86_64/libc++_shared.so']
}
}

我只是删除了 build.gradle > android > buildTypes 中的 useProguard true,它对我很有用。

我正在使用 JAVA,但由于某种原因,Android Studio 在我不知情的情况下将 kotlinOptions添加到 android块中。然后同样的错误发生了。我放在这里,以防有人需要。

android {
// ...


// remove this block if you are using Java
kotlinOptions {
jvmTarget = '1.8'
}


// ...
}

这个问题没有一般的答案,只是 app/build.gradle有点问题。

在我的例子中,我定义了一个名为 versionCode的变量,它导致了这个错误。将它重命名为例如 versionCode_修复了这个问题。