Das Projekt wird fehlerfrei von Android Studio erstellt -> Erstellen -> APKs erstellen. Nach der Installation funktioniert es einwandfrei. Das Ausführen des Projekts mit einer Ausführungskonfiguration führt jedoch zu dem folgenden Fehler:
Failed to execute aapt
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':MyProject:transformDexWithInstantRunDependenciesApkForFlavorDebug'.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.Java:103)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.Java:73)
at org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.Java:51)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.Java:59)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.Java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.Java:59)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.Java:101)
at org.gradle.api.internal.tasks.execution.FinalizeInputFilePropertiesTaskExecuter.execute(FinalizeInputFilePropertiesTaskExecuter.Java:44)
at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.Java:91)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.Java:62)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.Java:59)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.Java:54)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.Java:43)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.Java:34)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker$1.run(DefaultTaskGraphExecuter.Java:256)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.Java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.Java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.Java:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.Java:110)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.Java:249)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.Java:238)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.Java:123)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.Java:79)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.Java:104)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.Java:98)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.Java:663)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.Java:597)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.Java:98)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.Java:63)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.Java:46)
at Java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.Java:1142)
at Java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.Java:617)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.Java:55)
at Java.lang.Thread.run(Thread.Java:745)
Caused by: Java.lang.RuntimeException: com.Android.build.api.transform.TransformException: com.Android.ide.common.process.ProcessException: Failed to execute aapt
at com.Android.builder.profile.Recorder$Block.handleException(Recorder.Java:55)
at com.Android.builder.profile.ThreadRecorder.record(ThreadRecorder.Java:104)
at com.Android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.Java:212)
at Sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at Sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.Java:62)
at Sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.Java:43)
at Java.lang.reflect.Method.invoke(Method.Java:497)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.Java:73)
at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.Java:50)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.Java:39)
at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.Java:26)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.Java:124)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.Java:336)
at org.gradle.internal.progress.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.Java:328)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.Java:199)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.Java:110)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.Java:113)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.Java:95)
... 33 more
Caused by: com.Android.build.api.transform.TransformException: com.Android.ide.common.process.ProcessException: Failed to execute aapt
at com.Android.build.gradle.internal.transforms.InstantRunDependenciesApkBuilder.transform(InstantRunDependenciesApkBuilder.Java:152)
at com.Android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.Java:221)
at com.Android.build.gradle.internal.pipeline.TransformTask$2.call(TransformTask.Java:217)
at com.Android.builder.profile.ThreadRecorder.record(ThreadRecorder.Java:102)
... 49 more
Caused by: com.Android.ide.common.process.ProcessException: Failed to execute aapt
at com.Android.builder.core.AndroidBuilder.processResources(AndroidBuilder.Java:809)
at com.Android.builder.core.AndroidBuilder.processResources(AndroidBuilder.Java:797)
at com.Android.build.gradle.internal.transforms.InstantRunSplitApkBuilder.generateSplitApkResourcesAp(InstantRunSplitApkBuilder.Java:373)
at com.Android.build.gradle.internal.transforms.InstantRunSplitApkBuilder.generateSplitApkResourcesAp(InstantRunSplitApkBuilder.Java:321)
at com.Android.build.gradle.internal.transforms.InstantRunSplitApkBuilder.generateSplitApk(InstantRunSplitApkBuilder.Java:210)
at com.Android.build.gradle.internal.transforms.InstantRunDependenciesApkBuilder.transform(InstantRunDependenciesApkBuilder.Java:149)
... 52 more
Caused by: Java.util.NoSuchElementException
at com.google.common.collect.AbstractIndexedListIterator.next(AbstractIndexedListIterator.Java:80)
at com.google.common.collect.Iterators.getOnlyElement(Iterators.Java:315)
at com.google.common.collect.Iterables.getOnlyElement(Iterables.Java:263)
at com.Android.builder.internal.aapt.v1.AaptV1.makePackageProcessBuilder(AaptV1.Java:202)
at com.Android.builder.internal.aapt.AbstractProcessExecutionAapt.makeValidatedPackage(AbstractProcessExecutionAapt.Java:67)
at com.Android.builder.internal.aapt.AbstractAapt.link(AbstractAapt.Java:34)
at com.Android.builder.core.AndroidBuilder.processResources(AndroidBuilder.Java:807)
... 57 more
Der Fehler trat auf, nachdem zu Android Studio 3.1
, Gradle 4.4
verschoben und apply plugin: 'io.fabric'
zur Datei build.gradle hinzugefügt wurde. Die Run-Konfiguration funktionierte kurz vor dem Update einwandfrei. Das Projekt ist JavaVersion.VERSION_1_8 kompatibel. Ich habe auch Android.enableAapt2 = false
aus gradle.properties entfernt, da es veraltet ist. Irgendwelche Ideen, was das bewirken könnte?
UPDATE: gradle.properties
wurde in C:\Users\MyUser\.gradle\gradle.properties
für Windows zwischengespeichert. Offensichtlich wurde diese Datei auch verwendet, als ich zum Wrapper wechselte. Die Änderungen am gradle.properties
des Projekts hatten keine Auswirkungen, bis ich den Cache entfernt habe. Als Android.enableAapt2 = false
tatsächlich entfernt wurde, war die Warnung weg und ich konnte Instant Run aktivieren.
Es ist ein Fehler in Gradle Plugin Code, der AAPT1 aufruft. Es wurde behoben, aber nicht auserlesen, es sollte in der nächsten veröffentlichten Version verfügbar sein (es sollte in Version 3.2 Kanarienvogel 3 und neuer behoben sein).
Dies betrifft nur AAPT1. Wenn Sie das Flag "Android.enableAapt2 = false" entfernen, wird der Code diesen Codepfad nicht treffen (überprüfen Sie Ihre Datei "gradle.properties" und die zusätzlichen Argumente, die Sie von Android Studio an Gradle übergeben).
Ich tat es unten und es wurde dieses Problem gelöst:
In der Datei gradle.properties:
Android.enableAapt2 = false
Ich habe den Instant Run deaktiviert. (Wichtig)
In den Gradle-Eigenschaften: entferne Android.enableAapt2 = false und Aktualisiere die buildToolVersion in deiner App build.gradle und in allen anderen Modulen (falls verwendet).
Führen Sie in Ihrem Terminal den Befehl gradlew --info assembleDebug aus, und prüfen Sie, ob andere Fehler vorhanden sind. Wenn Sie sie finden, müssen Sie sie manuell beheben und beheben. In meinem Fall gab es ein Bild mit 9 Patches, das alle Probleme bereitete .
Versuchen Sie, Ihr Projekt zu reinigen und neu aufzubauen.
Oder
Deaktivieren Sie die Instant-Run-Funktion und prüfen Sie, ob sie funktioniert.
Oder
Versuchen Sie, multiDexEnabled zu aktivieren.
defaultConfig {
multiDexEnabled true
}
Oder
Datei -> Caches ungültig machen und neu starten
Sie haben folgende Möglichkeiten, das Problem zu beheben:
For Android studio 3.1 or <3.2
Android.enableAapt2=false
. For Android studio 3.2 or later
Android.enableAapt2=true
.Öffnen Sie die Registerkarte File und klicken Sie auf Invalidate Caches\Restart .Es hat bei mir funktioniert :).