web-dev-qa-db-ja.com

aaptの実行に失敗しました(AbstractIndexedListIterator.next(AbstractIndexedListIterator.Java:80)でNoSuchElementException

プロジェクトはAndroid Studio-> Build-> Build APKsからエラーなしでビルドされ、インストール後は正常に動作します。ただし、実行構成でプロジェクトを実行すると、次のエラーが発生します。

    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

エラーは、Android Studio 3.1Gradle 4.4に移動し、build.gradleファイルにapply plugin: 'io.fabric'を追加した後に現れました。実行構成は、更新の直前に正常に機能しました。プロジェクトはJavaVersion.VERSION_1_8互換です。 Android.enableAapt2 = falseも廃止されたため、gradle.propertiesから削除しました。何がそれを引き起こす可能性がありますか?

PDATE:gradle.propertiesはWindowsのC:\Users\MyUser\.gradle\gradle.propertiesにキャッシュされました。ラッパーに切り替えたときでも、明らかにそのファイルが使用されていました。プロジェクトのgradle.propertiesへの変更は、キャッシュを削除するまで有効になりませんでした。 Android.enableAapt2 = falseが実際に削除されたとき、警告はなくなり、インスタントランを有効にできました。

18
Galya

これは、AAPT1を呼び出すgradleプラグインコードのバグです。修正されましたが、チェリーピックではなく、次のリリースバージョンで利用可能になるはずです(3.2 canary 3以降で修正されるはずです)。
これはAAPT1にのみ影響します。 Android.enableAapt2 = falseフラグを削除すると、コードはこのコードパスにヒットしなくなります(gradle.propertiesファイルと、Android Studio)からgradleに渡す追加の引数を確認してください。

25

私は以下を行い、この問題を解決しました:

  1. Gradle.propertiesファイルで:

    Android.enableAapt2 = false

  2. インスタントランを無効にしました。(重要)

11
Vibhor Bhardwaj

Gradleプロパティ:Android.enableAapt2 = falseを削除、およびbuildToolVersionをアップグレードアプリbuild.gradleおよび他のすべてのモジュール(使用されている場合)でも。

ターミナルでコマンドgradlew --info assembleDebugを実行し、他のエラーを確認し、見つかった場合は手動で修正します。私の場合、すべてのトラブルを引き起こしていた9つのパッチイメージがありました。

プロジェクトをきれいにして再構築してみてください。

または

インスタントラン機能を無効にして、機能するかどうかを確認してください。

または

MultiDexEnabledを試して有効にしてください。

defaultConfig {
    multiDexEnabled true
}

または

ファイル->キャッシュを無効にして再起動

3
Kaveesh Kanwal

次のいずれかの方法で問題を修正できます。

For Android studio 3.1 or <3.2

  1. Android.enableAapt2=falseでgradle.propertiesファイルを更新します
  2. インスタントラン(Ctrl + shift + A(win + Linux)またはCommand + shift + A(Mac)を無効にして、インスタントランを検索します)。

For Android studio 3.2 or later

  1. Android studioを3.2に更新
  2. Android.enableAapt2=trueでgradle.propertiesファイルを更新します
  3. 今すぐインスタント実行を有効にしておくことができます。
1
0xAliHn

ファイルタブを開き、キャッシュの無効化\再起動をクリックします。 それは私のために働いた:)。

0
Moses Katsina