Android Studio 4.1更新后应用程序的Gradle构建错误

Posted

技术标签:

【中文标题】Android Studio 4.1更新后应用程序的Gradle构建错误【英文标题】:Gradle build error of app after Android Studio 4.1 update 【发布时间】:2021-02-09 21:31:16 【问题描述】:

我已从 android Studio 4.0 更新到 4.1。更新后,我无法再构建我的应用程序,这在更新之前运行良好。 当我构建项目时,出现以下异常:

失败:构建失败并出现异常。 出了什么问题: 任务“:app:compressDebugAssets”执行失败。 执行 com.android.build.gradle.internal.tasks.CompressAssetsWorkAction 时发生故障 my\application\path\app\build\intermediates\merged_assets\debug\out

文件夹 my\application\path\app\build\intermediates\merged_assets\debug\out 为空。

我想做什么:

清理并重建项目 删除 .gradle 和 build 文件夹并清理并重建项目 使 Android Studio 失效并重新启动 将 gradle.properties 中的堆大小增加到:org.gradle.jvmargs=-Xmx4096m 增加了 compileSdkVersion 和 targetSdkVersion 安装并更新 buildToolsVersion 从 30.0.0 到 30.0.2 在我的配置中添加了 multiDexEnabled true

我的 gradle 配置如下:

apply plugin: 'com.android.application'

android 
    compileSdkVersion 'android-R'
    buildToolsVersion "30.0.2"

    defaultConfig 
         applicationId "my.application.id"
         minSdkVersion 23
         targetSdkVersion 29
         versionCode 2
         versionName "1.1"
         multiDexEnabled true
         testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"

         vectorDrawables 
             useSupportLibrary = true
         
     

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

 repositories 
     mavenCentral()
     maven  url 'https://maven.google.com' 
 

 dependencies 
     implementation fileTree(dir: "libs", include: ["*.jar"])
     implementation 'androidx.appcompat:appcompat:1.2.0'
     implementation 'androidx.legacy:legacy-support-v4:1.0.0'
     implementation 'com.google.android.material:material:1.2.1'
     implementation 'androidx.constraintlayout:constraintlayout:2.0.2'
     implementation 'androidx.navigation:navigation-fragment:2.3.1'
     implementation 'androidx.navigation:navigation-ui:2.3.1'
     implementation 'androidx.lifecycle:lifecycle-extensions:2.2.0'
     testImplementation 'junit:junit:4.13.1'
     androidTestImplementation 'androidx.test.ext:junit:1.1.2'
     androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0'
     implementation "androidx.room:room-runtime:2.2.5"
     annotationProcessor "androidx.room:room-compiler:2.2.5"
     implementation 'com.github.bumptech.glide:glide:4.11.0'
     implementation 'androidx.multidex:multidex:2.0.1'
 

伙计们,我没有想法,因为我不是 gradle 方面的专家。非常感谢您的帮助。

【问题讨论】:

你的 gradle 和 android 插件版本是什么? 您的 minSdkVersion 是 23,您不需要 implementation 'androidx.multidex:multidex:2.0.1'vectorDrawables useSupportLibrary = true。尝试删除它们。 【参考方案1】:

我找到了将我的 Android Studio 版本降级到 4.0.2 的临时解决方案。 此外,我将 Android gradle 插件版本更改为 4.0.2,将 gradle 版本更改为我之前安装的 6.1.1。您可以在 文件 -> 项目结构 -> 项目下执行此操作。 现在我可以再次运行我的应用程序了。我知道这只是一个临时解决方案,但至少我可以再次处理我的应用程序。 我将在接下来的几天尝试安装 Android Studio 4.2 Canary 15 并检查这是否适合我。我让你知道。

【讨论】:

【参考方案2】:

这是我每次进行更新时通常对我有用的方法,我希望它对你有用。

有时 gradle build 会失败,因为下载 gradle 成功构建所需的一些依赖项丢失,需要下载。因此,请确保您的计算机处于在线状态。

-> 点击 gradle(你的 android studio 右侧),然后切换下图中突出显示的按钮。

    确保它没有突出显示,因为如果它被突出显示意味着 gradle 离线(无法访问互联网)

    然后重新构建项目以下载缺少的 gradle 依赖项。

我希望你觉得这很有用。

【讨论】:

感谢您的回答。不幸的是,这对我没有用。该按钮尚未突出显示,我的互联网连接稳定。【参考方案3】:

此解决方案可能会有所帮助。我遇到了这个错误出现的问题,我不知道为什么。事实证明,我将我的 android 项目保存到 U 盘。 USB 记忆棒使用 PAL 进行格式化。我用 NTFS 重新格式化,问题就消失了。

【讨论】:

我不确定格式化 U 盘是否能修复 Android Studio 迁移。似乎您在其他方面做得很好,但没有注意到这是一个修复:)【参考方案4】:

今天早上我在更新我的 Android 工作室后遇到了类似的问题。就我而言,以前的项目运行良好,但如果我创建一个新项目并尝试运行,我将收到上述错误消息。我从项目结构对话框中将 Android Gradle 插件版本更改为 4.0.2,将 Gradle 版本更改为 6.1.1,之后我能够成功运行该应用程序。

【讨论】:

【参考方案5】:

将我的项目位置从 FAT32 格式的驱动器更改为 NTFS 驱动器解决了我的问题。

【讨论】:

以上是关于Android Studio 4.1更新后应用程序的Gradle构建错误的主要内容,如果未能解决你的问题,请参考以下文章

更新到 Android Studio 4.1 时出现 java.lang.AssertionError

在Android Studio中将Gradle从3.3升级到4.1后出错

更新到 Android Studio 4.1,flutter 插件和 dart 插件未安装

Flutter Doctor 不识别 Android Studio 和 flutter dart plugins plugins 新版本 4.1 更新

随着 Android Studio 4.1 更新 'Plugin incompatible with the new build found: Firebase Services' 出现警告信息

关于Android Studio升级4.1版本后ButterKnife插件不兼容的问题