我得到这个错误,而我正在构建APK。

Cause 1: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
    at org.gradle.workers.internal.DefaultWorkerExecutor$WorkerExecution.waitForCompletion(DefaultWorkerExecutor.java:285)
    at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForItemsAndGatherFailures(DefaultAsyncWorkTracker.java:115)
    at org.gradle.internal.work.DefaultAsyncWorkTracker.waitForCompletion(DefaultAsyncWorkTracker.java:87)
    at org.gradle.workers.internal.DefaultWorkerExecutor.await(DefaultWorkerExecutor.java:150)
    at com.android.build.gradle.internal.tasks.Workers$WorkerExecutorAdapter.await(Workers.kt:282)
    at com.android.ide.common.resources.MergeWriter.end(MergeWriter.java:48)
    at com.android.ide.common.resources.MergedResourceWriter.end(MergedResourceWriter.java:242)
    at com.android.ide.common.resources.DataMerger.mergeData(DataMerger.java:292)
    at com.android.ide.common.resources.ResourceMerger.mergeData(ResourceMerger.java:384)
    at com.android.build.gradle.tasks.MergeResources.lambda$doFullTaskAction$1(MergeResources.java:261)
    at com.android.build.gradle.internal.tasks.Blocks.recordSpan(Blocks.java:58)

试图使缓存无效并重新启动android工作室。重建项目,但没有一个为我工作。


最后通过将这一行添加到gradle.properties找到了解决方案。

org.gradle.jvmargs = -Xmx4608m


类路径“com.android.tools.build: gradle: 3.3.2” 更改类路径就可以工作了。


如果你已经尝试了上面所有的解决方案,仍然没有解决你的问题。

这看起来可能没有什么关联,但以下是我的看法。

试着从你的Gradle依赖中删除这个,因为这个障碍,我已经花了2个小时的时间。

实现“com.squareup.retrofit2: adapter-rxjava2:2.3.0”


找到了解决方案。

将此代码添加到build.gradle中,

dependencies {
    def multidex_version = "2.0.1"
    implementation 'androidx.multidex:multidex:$multidex_version'
}

then enable the multidex to true

 defaultConfig {
        ...
        minSdkVersion 15 
        targetSdkVersion 28
        multiDexEnabled true
    }



在Android Studio试试这个

File > Invalidate Caches/Restart... 

我只有在构建棒棒糖或棉花糖时,才得到与您类似的堆栈跟踪,解决方案是禁用高级剖析。

在这里找到它:

执行命令-> Edit Configurations -> Profiling ->启用高级剖析

https://stackoverflow.com/a/58029739/860488


搜索你的代码,你必须在一个XML绘图中引用color. XML中的color。 去给出十六进制代码,而不是引用....

例子: 在drawable.xml中,你必须调用

android:fillColor="@color/blue"

改为android:fillColor="#ffaacc" 希望它能解决你的问题…


在android工作室的右侧 点击gradle -> app -> build -> assemble。 然后android工作室将开始构建,并打印您的问题的正确消息。


当你试图构建一个使用VectorDrawable作为自适应图标的应用程序时,你可能会遇到这样的错误。和你的XML文件包含"android:fillColor"与<梯度>块:

res - drawable icon_with_gradient xml。

<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:aapt="http://schemas.android.com/aapt"
    android:width="96dp"
    android:height="96dp"
    android:viewportHeight="100"
    android:viewportWidth="100">

    <path
        android:pathData="M1,1 H99 V99 H1Z"
        android:strokeColor="?android:attr/colorAccent"
        android:strokeWidth="2">
        <aapt:attr name="android:fillColor">
            <gradient
                android:endColor="#156a12"
                android:endX="50"
                android:endY="99"
                android:startColor="#1e9618"
                android:startX="50"
                android:startY="1"
                android:type="linear" />
        </aapt:attr>
    </path>
</vector>

渐变填充颜色通常用于自适应图标,例如在教程中这里,这里和这里。

即使布局预览工作正常,当你构建应用程序时,你会看到这样的错误:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':app:mergeDebugResources'.
> A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade
   > Error while processing Project/app/src/main/res/drawable/icon_with_gradient.xml : null

(More info shown when the gradle build is run with --stack-trace flag):

Caused by: java.lang.NullPointerException
    at com.android.ide.common.vectordrawable.VdPath.addGradientIfExists(VdPath.java:614)
    at com.android.ide.common.vectordrawable.VdTree.parseTree(VdTree.java:149)
    at com.android.ide.common.vectordrawable.VdTree.parse(VdTree.java:129)
    at com.android.ide.common.vectordrawable.VdParser.parse(VdParser.java:39)
    at com.android.ide.common.vectordrawable.VdPreview.getPreviewFromVectorXml(VdPreview.java:197)
    at com.android.builder.png.VectorDrawableRenderer.generateFile(VectorDrawableRenderer.java:224)
    at com.android.build.gradle.tasks.MergeResources$MergeResourcesVectorDrawableRenderer.generateFile(MergeResources.java:413)
    at com.android.ide.common.resources.MergedResourceWriter$FileGenerationWorkAction.run(MergedResourceWriter.java:409)

解决方案是将文件icon_with_gradient.xml移动到drawable-v24/icon_with_gradient.xml或drawable-v26/icon_with_gradient.xml。这是因为梯度填充只在API 24 (Android 7)及以上版本中支持。VectorDrawable:无效的可绘制标签梯度


我知道这可能不是一个完整或准确的解决方案,但对于那些即使在做了这个线程上给出的事情之后仍然面临问题的人来说,检查你在value文件夹中的文件。对我来说,有一个拼写错误和一些缺失的值。一旦我修复了他们这个错误停止。


如果你得到这个错误签名配置。json(拒绝访问)意味着退出android studio,回到桌面主页,点击android studio图标,以管理员身份运行,这将解决问题(或者)你可以删除签名配置。Json并重新运行程序:)


android studio: 3.6.3和gradle版本:

classpath 'com.android.tools.build:gradle:3.6.3'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:1.3.72"

添加这一行

gradle。属性文件

org.gradle.jvmargs=-Xmx512m

几分钟前,当我试图在我的C/(.something. /.something. /.something. /.something....)目录中运行一个flutter项目时,我也遇到了同样的问题,

所以我在我的E目录中创建了一个新文件夹,并在那里启动了一个新项目,当我运行它.....令人惊讶的是,它竟然起作用了。我不知道为什么?

这是我在运行E: directory后得到的消息

Launching lib\main.dart on Lenovo K33a42 in debug mode...
Running Gradle task 'assembleDebug'...
Checking the license for package Android SDK Platform 28 in 
C:\Users\Shankar\AppData\Local\Android\sdk\licenses
License for package Android SDK Platform 28 accepted.
Preparing "Install Android SDK Platform 28 (revision: 6)".
"Install Android SDK Platform 28 (revision: 6)" ready.
Installing Android SDK Platform 28 in 
C:\Users\Shankar\AppData\Local\Android\sdk\platforms\android-28
"Install Android SDK Platform 28 (revision: 6)" complete.
"Install Android SDK Platform 28 (revision: 6)" finished.
Parameter format not correct -
√ Built build\app\outputs\apk\debug\app-debug.apk.
Installing build\app\outputs\apk\app.apk...
Debug service listening on ws://127.0.0.1:51105/5xCsT5vV62M=/ws
Syncing files to device Lenovo K33a42...

我已经启用了multidex,但版本太旧了,所以升级了,它修复了这个问题:

// Old version
implementation "com.android.support:multidex:1.0.3"
// New version
def multidex_version = "2.0.1"
implementation "androidx.multidex:multidex:$multidex_version"

我通过添加以下行来解决这个问题

在android>应用>build中添加multiDexEnabled truegradle在defaultConfig里面 在android>应用>构建中添加实现'com.android.support:multidex:1.0.3'。Gradle内部依赖


如果有人在添加firebase存储后出现此问题。清理一下颤振,再运行一下,能行吗


当我直接从GitHub下载代码文件时,我遇到了这个问题,但它显示了这个错误,但我的同事告诉我使用“Git bash here”并使用命令来Gitclone它。这样做之后,它就可以正常工作了。


在我的案例中,问题是由于gradle包装中的gradle版本从6.2 all升级到6.6 all。所以我清除了avd的数据并重新启动它,然后删除了android/中的。gradle文件夹。Gradle,然后运行yarn start -reset-cache和yarn android。然后它对我起作用了


解决方案:

Caused by 4: com.android.builder.internal.aapt.AaptException: Dependent features configured but no package ID was set.

所有特性模块都必须应用库插件,而不是应用程序插件。

构建。gradle (androidApp: feature_A)

apply plugin: 'com.android.library'

这完全取决于每个组件的堆栈跟踪。原因1 WorkExecutionException可能是其他原因导致的。因此,我建议从最后一个原因到第一个原因读取完整的堆栈跟踪。因此,如果我们解决了最后一个原因,很可能我们就已经固定了从最后一个原因到第一个原因的链条。

我附上我的堆栈跟踪的一个例子,原始或具体的问题是在最后的原因:

Caused by: org.gradle.workers.internal.DefaultWorkerExecutor$WorkExecutionException: A failure occurred while executing com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask$TaskAction

Caused by: com.android.builder.internal.aapt.v2.Aapt2InternalException: AAPT2 aapt2-4.2.0-alpha16-6840111-linux Daemon #0: Unexpected error during link, attempting to stop daemon.

Caused by: java.io.IOException: Unable to make AAPT link command.

Caused by 4: com.android.builder.internal.aapt.AaptException: Dependent features configured but no package ID was set.

GL

特性包ID未设置


在我的案例中,这个问题与视图绑定有关。由于无效的xml布局文件,无法生成绑定类。在文件中,我有一个带有id开关的Switch,这是一个Java关键字。重命名Switch id解决了这个问题。


清理项目->使缓存无效/重新启动。我的问题就这样解决了。


改变后对我有用:

        <activity
        android:name="com.packagename.PurchaseActivity"
        android:configChanges="orientation|screenSize"
        android:label="@string/title_activity_purchase"
        android:screenOrientation="portrait" />

to

        <activity
        android:name=".PurchaseActivity"
        android:configChanges="orientation|screenSize"
        android:label="@string/title_activity_purchase"
        android:screenOrientation="portrait" />

删除包的名称,所有java类作为应用程序的一部分,它解决了我的问题:-)

该应用程序最近已迁移到AndroidX。


在我的情况下,我使用react本机,它发生在gradle更新到新版本时。我就知道这和葛拉德卢有关。我检查了几天前我在github上推送的回购。我改变了gradle类在android/build中的路径。Gradle依赖项和添加项

classpath("com.android.tools.build:gradle:3.5.3")
classpath 'com.google.gms:google-services:4.3.3'

这解决了我的问题。


比如我对Kotlin的看法 build.gradle:应用程序 添加一行依赖项: multiDexEnabled真实 并添加 Def multidex_version = "2.0.1" 实现“androidx.multidex: multidex: multidex_version美元”


遇到类似的问题…对我来说,修正是改变/更新gradle版本

   classpath "com.android.tools.build:gradle:4.1.2" 

to

   classpath "com.android.tools.build:gradle:4.1.3"

为我工作


我更新了这个,并在gradle包装器属性中为我工作

distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip

在我的例子中,我启用了multidex

[project_folder] / app /构建开放。Gradle并添加以下行。

defaultConfig {
    ...

    multiDexEnabled true
}

and

dependencies {
    ...

    implementation 'com.android.support:multidex:2.0.1'
}

在我的代码中,我使用的是最新版本的flutter和包 并通过添加该行来消除此错误

multiDexEnabled true 

在应用程序级别build.gradle


对我来说,这是因为

//noinspection GradleCompatible
compile 'com.android.support:appcompat-v7:23.1.1'

//noinspection GradleCompatible
compile 'com.android.support:design:23.1.1'

试着把它拿掉。


我也有同样的问题,你可以加上这个

org.gradle。jvmargs=-Xmx4608m在你的Gradle.properties

但我的情况是这样的:

来自: org.gradle。jvmargs = -Xmx2048m -Dfile.encoding = utf - 8

: org.gradle。jvmargs = -Xmx4608m -Dfile.encoding = utf - 8


重新启动笔记本电脑为我做了这项工作。


如果你陷入下面的错误

Execution failed for task ':app:signReleaseBundle'. > A failure occurred while 
executing com.android.build.gradle.internal.tasks.Workers$ActionFacade > 'other' 
has different root

**然后做它改变你的位置。abb的时间生成到你的 项目(这个。aab的自己的项目)然后转到app,然后选择realese 文件夹来保存你的。aab **


gradle.proprites

org.gradle.jvmargs=-Xmx1536M

build.gradle

defaultConfig {
        multiDexEnabled true
    }

dependencies {
    implementation 'com.android.support:multidex:1.0.3'
}

然而这些东西并没有解决我的问题,直到我增加编译esdkversion从27到28,它为我工作。

android {
    compileSdkVersion 28

    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
    }

    lintOptions {
        disable 'InvalidPackage'
    }

    defaultConfig {
         minSdkVersion 21
        targetSdkVersion 28
        versionCode flutterVersionCode.toInteger()
        versionName flutterVersionName
        multiDexEnabled true
    }

    buildTypes {
        release {
            crunchPngs false
        }
    }
}

试着检查你的防病毒软件是否阻止了任何重要的Java 8文件

当我突然得到这个错误时,我的项目完全正常工作。我花了整整两个小时来解决这个问题。重启电脑并重新构建项目后,这个问题仍然存在,但随后我的反病毒软件(Avast)弹出一个窗口,说它“保护”了我免受危险文件的侵害。我只是允许文件,然后突然一切都像以前一样正常工作。


How To Solve A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade Error? To Solve A failure occurred while executing com.android.build.gradle.internal.tasks.Workers$ActionFacade Error Just open your app/build.gradle file and change this line. androidx.core:core-ktx:+ replace with androidx.core:core-ktx:1.6.0 Here is an Example. If you are using androidx.core:core-ktx:+ then this will find the latest version of androidx.core:core-ktx:+ and the latest one is 1.7.0 and the latest version needs the Android 31 compile SDK. So that You are facing this issue. Here is Two Possible Solution use a specific version, use androidx.core:core-ktx:${version} instead of androidx.core:core-ktx:+ upgrade the compile SDK to Android 31 full article is Here


删除文件夹名称上的空白路径它解决了问题


我有这个问题,这是由@org.jetbrains.annotations.NotNull()在我的一个实现中引起的。我仔细阅读gradle错误,发现。


我在活动中实现了黑暗模式。我刚刚声明了属性标签,没有在任何地方使用它,所以得到了同样的错误。确保在代码中声明、定义和使用了所有的资源值(特别是属性标记)。

如果你有这样的资源错误,那么你将不会得到一个适当的问题纠正通过android工作室。您必须小心地撤消更改。


检查项目所有文件名称中的任何特殊字符(如从unity导出时的括号[])。


请尝试更新约束布局

实现“androidx.constraintlayout: constraintlayout: 2.1.3


我得到这个错误是因为我缺少一个

/>

在activity_main.xml中某一行的末尾


这解决了我的问题。

cd android && ./gradlew clean

在我的情况下,这个问题是由于我替换了文件夹android/app/src/main/res的所有内容,因为我正在改变我的应用程序图标。

我的解决方案是保留这些文件夹: android / app / src / main / res /值 android / app / src / main / res / values-night


只需添加

android.enableJetifier = true

去gradle。属性。

实际上,这主要发生在你搞砸了androidx和支持库,一些依赖目前不完全支持androidx。所以你必须启用jetfier。


请检查当前图标是否不在调试文件夹中,如果是,请将它们移动到主文件夹或重新创建它们


这里我发现只需添加这一行gradle.properties

org . gradle jvmargs = -Xmx4g。


在android文件夹根的本地属性中设置最小sdk版本为21:

flutter.minSdkVersion=21

在app->build.gradle中

defaultConfig {
        [...]
        minSdkVersion localProperties.getProperty('flutter.minSdkVersion').toInteger()

根据文件:

注意:当针对Android SDK 21或更高版本时,Multidex支持是原生的。

他们还谨慎地警告说:

但是,不建议仅仅针对API 21+来解决多重索引问题,因为这可能会无意中排除运行旧设备的用户。

但是SDK 21在10年前就发布了Android版本5,0 Lollipop,如你所见:https://en.wikipedia.org/wiki/Android_Lollipop(更不用说这些设备,如果它们仍然存在,通常有能力升级他们的Android版本)。


我通过将这一行添加到gradle.properties解决了这个问题。

android.enableJetifier = true


试着把这个添加到gradle.properties中

org.gradle.jvmargs=-Xmx1536M
android.useAndroidX=true
android.enableJetifier=true