webentwicklung-frage-antwort-db.com.de

Fehler beim Ausführen von aapt (NoSuchElementException at AbstractIndexedListIterator.next (AbstractIndexedListIterator.Java:80)

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.

18
Galya

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). 

24

Ich tat es unten und es wurde dieses Problem gelöst:

  1. In der Datei gradle.properties:

    Android.enableAapt2 = false

  2. Ich habe den Instant Run deaktiviert. (Wichtig)

11
Vibhor Bhardwaj

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

3
Kaveesh Kanwal

Sie haben folgende Möglichkeiten, das Problem zu beheben:

For Android studio 3.1 or <3.2

  1. Aktualisieren Sie die Datei gradle.properties mit Android.enableAapt2=false
  2. Deaktivieren Sie Instant Run (Strg + Umschalttaste + A (win + Linux) oder Befehlstaste + Umschalttaste + A (Mac) und suchen Sie nach Instant Run).

For Android studio 3.2 or later

  1. Aktualisieren Sie Android Studio auf Version 3.2
  2. Aktualisieren Sie die Datei gradle.properties mit Android.enableAapt2=true.
  3. Sie können den Instant-Lauf jetzt aktivieren.
1
0xalihn

Öffnen Sie die Registerkarte File und klicken Sie auf Invalidate Caches\Restart .Es hat bei mir funktioniert :).

0
Moses Katsina