예외 : AAPT2 오류 : 자세한 내용은 로그 확인
Task :processDebugResources Failed to execute aapt com.android.ide.common.process.ProcessException: Failed to execute aapt
at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:796)
at com.android.build.gradle.tasks.ProcessAndroidResources.invokeAaptForSplit(ProcessAndroidResources.java:551)
at com.android.build.gradle.tasks.ProcessAndroidResources.doFullTaskAction(ProcessAndroidResources.java:285)
at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:109)
at sun.reflect.GeneratedMethodAccessor200.invoke(Unknown Source)
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.DefaultTaskClassInfoStore$IncrementalTaskAction.doExecute(DefaultTaskClassInfoStore.java:173)
at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)
at org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore$StandardTaskAction.execute(DefaultTaskClassInfoStore.java:121)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:122)
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:197)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:111)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63)
at org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)
at org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52)
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
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:248)
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:197)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:124)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.access$200(DefaultTaskPlanExecutor.java:80)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:105)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker$1.execute(DefaultTaskPlanExecutor.java:99)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625)
at org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor$TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99)
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.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:503)
at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:482)
at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:79)
at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:794)
... 47 more Caused by: java.util.concurrent.ExecutionException: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
at com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:503)
at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:462)
at com.google.common.util.concurrent.AbstractFuture$TrustedFuture.get(AbstractFuture.java:79)
at com.android.builder.internal.aapt.v2.QueueableAapt2.lambda$makeValidatedPackage$1(QueueableAapt2.java:179)
at com.android.builder.internal.aapt.v2.QueueableAapt2$$Lambda$489/579799618.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
... 1 more Caused by: com.android.tools.aapt2.Aapt2Exception: AAPT2 error: check logs for details
at com.android.builder.png.AaptProcess$NotifierProcessOutput.handleOutput(AaptProcess.java:454)
at com.android.builder.png.AaptProcess$NotifierProcessOutput.err(AaptProcess.java:411)
at com.android.builder.png.AaptProcess$ProcessOutputFacade.err(AaptProcess.java:332)
at com.android.utils.GrabProcessOutput$1.run(GrabProcessOutput.java:104)
AAPT2
로그 는 어디에 저장됩니까? 로 마이그레이션하는 동안 gradle-plugin-3.0.0
이 예외가 발생합니다.
나는 오늘 아침에 바로이 문제를 만났고 그것에 대한 해결책도 찾았습니다. 이 문제는 .xml 파일 중 하나를 엉망으로 만들 때 발생합니다. 하나씩 살펴보고 최근에 변경된 사항을 찾아 보는 것이 좋습니다. 어리석은 실수로 인해 발생할 수 있습니다.
제 경우에는 실수로 색상 문자열을 #FFFFF (나쁜 습관, 알아요)로 하드 코딩했습니다. 보시다시피 6 대신 5 F를 가졌습니다. 경고를 표시하지 않았지만 사용자가 겪은 것과 동일한 문제의 원인이었습니다.
편집 1 : 할 수있는 또 다른 일은 gradle 콘솔에서 assembleDebug 를 실행 하는 것입니다. 특정 라인을 찾을 수 있습니다.
편집 2 : assembleDebug 를 실행하기위한 참조 용 이미지 추가 .
AAPT2 오류 솔루션입니다.
Android 스튜디오가 업데이트 된 경우.
아마도 스튜디오에서 " AAPT 2 error : check the log for details " 와 같은 오류가 발생할 수 있습니다.
이 오류는 잘못된 값, 콘텐츠를 찾을 수 없음 등과 같은 .xml 파일에서 잘못된 작업을 수행 한 경우에 발생합니다.
그러나 그 당시에는 오류 사양이 없습니다. Android Studio의 새 버전은 특정 오류를 제공하지 않기 때문입니다. AAPT2 오류처럼 제공됩니다.
실제 오류가 어디에 있는지 알고 싶다면
단계를 따르십시오.
- Android 스튜디오 오른쪽에있는 패널을보십시오. "Gradle"탭을 확인하고 클릭하십시오.
- "앱"옵션이 표시됩니다. 그것을 클릭하십시오.
- 앱 옵션에서 [작업-> 빌드]를 볼 수 있습니다.
- 그러면 옵션 목록이 표시되고 "assembleDebug"가 두 번 클릭됩니다.
- 인내심을 유지하고 Android 스튜디오 하단 패널에서 빌드 탭을 확인하면 특정 오류가 발생합니다.
Gradle 경로의 ASCII가 아닌 기호로 인해 오류가 발생할 수 있습니다. 예 : 사용자 폴더의 키릴 기호. 따라서 ASCII 전용 경로가있는 다른 디렉토리로 전환하면 문제가 해결됩니다.
3 단계로 ERROR를 수정했습니다
. 1. SOURCE 문제를 확인했습니다.
2. 원인이 되었기 때문에 올바른 문자열 / 텍스트를 제공했습니다.
3. 프로젝트를 정리했습니다. BUILD 아래에 표시됩니다.
compileSdkVersion에 따라이 줄을 추가하십시오.
buildToolsVersion "27.0.3"
최근 편집 된 XML 파일을 확인하십시오. 내가 다음과 같은 줄을이었다 THER 마지막 XML 파일, 검사, 주요 악당 내가 한때 오류가 발생한 것입니다 android:layout_marginTop="."
내가 그것을 변경을 android:layout_marginTop="16dp"
. 버그가 수정되었습니다!
png 파일에 문제가있을 수 있습니다. 여기를보십시오.
1 more 원인 : com.android.tools.aapt2.Aapt2Exception : AAPT2 오류 : com.android.builder.png.AaptProcess $ NotifierProcessOutput.handleOutput (AaptProcess.java:454)에서 세부 사항에 대한 로그를 확인하십시오.
PNG 확장자를 가진 손상된 이미지 또는 jpeg 이미지 일 수 있습니다.
서명 된 Apk를 생성 할 때만이 오류가 발생하는 경우. 그런 다음 가져온 미디어 파일 형식 중 하나 이상에 문제가있을 수 있습니다. 나는 net에서 studio로 직접 이미지를 사용했고 sign apk를 생성 할 수 없었고 오류를 발견했습니다.
Gradle> assembleRelease에서 콘솔에 오류가 발생했습니다. 콘솔 이미지의 오류 로그를 참조하십시오.
드로어 블 폴더의 이미지가 손상되지 않았는지 확인하십시오.
비슷한 문제에 직면했습니다. Akilesh awasthi의 대답은 내가 그것을 고치는 데 도움이되었습니다. 제 문제는 조금 달랐습니다. com.google.android.gms : play-services-location에서 places_ic_search 아이콘 을 사용하고 있었습니다 . 최신 버전 com.google.android.gms : play-services-location : 15.0.0 은 아이콘 places_ic_search를 제공하지 않습니다. 이로 인해 layout.xml 파일에 문제가 발생하여 빌드 실패 AAPT2 오류 : 로그에서 세부 사항 을 메시지로 확인하십시오 . Android 스튜디오는 대신 drawable places_ic_search를 찾을 수 없다는 메시지를 표시해야합니다.
I ended up using a lower version of com.google.android.gms:play-services-location temporarily. Hope this helps someone in future.
I made a stupid mistake. In my case, I made the project path too deep. Like this: C:\Users\Administrator\Desktop\Intsig_Android_BCRSDK_AndAS_V1.11.18_20180719\Intsig_Android_BCRScanSDK_AndAS_V1.10.1.20180711\project\as\AS_BcrScanCallerSvn2
Please migrate the project to the correct workspace. Hope this helps someone in future.
I tried every possible solution to fix this frustrating error and only below worked for me. In your build.gradle add this:
android {
aaptOptions.cruncherEnabled = false
aaptOptions.useNewCruncher = false }
Just in case above solution did not work. In my case , Bitdefender Antivirus was Preventing AAPT2 from making change on certain file.
For me, I got this error while working on some Udacity projects. I fixed it by adding the following code to the top-level build.gradle file.
allprojects {
String osName = System.getProperty("os.name").toLowerCase()
if (osName.contains("windows")) {
buildDir = "C:/tmp/${rootProject.name}/${project.name}"
}
repositories {
jcenter()
google()
}
}
If you are seeking a way to get to the heart of the issue. Android studio contains a feature within the edit configurations panel that simplifies this possible. By clicking on the "app" tag (It is typically to the left of the top run button)
You will open the option to edit configurations. From there create an instance of the gradle option to yourself.
The core features are actually the gradle project as well as the task. Connect the task to your debug initiative.
When you run your app through this setting, Android will spit out detailed errors(That we all wish would appear more often) and these errros will point directly a what needs to be resolved.
I had this error and no meaningful message to tell me what was wrong. I finally removed this line from gradle.properties and got a meaningful error message.
android.enableAapt2=false
In my case somebody on the team had changed a .jpg extension to a .png and the file header didn't match the extension. Fun.
style="?android:attr/android:progressBarStyleSmall"
to
style="?android:attr/progressBarStyleSmall"
I was also getting same error because of using &
character directly in layout xml. So, please be careful about using html entities in your project.
possible issue related to this can be with your XML files. I have faced this when I deleted my unnecery xml files.
For remedy from this error in gradle.properties of the module, add this below line:
android.enableAapt2=false
after adding this line, restart the gradle.
and do once clean, rebuild your project.
이것은 나를 위해 문제를 해결했습니다. 빌드 | 프로젝트 정리 리 팩터 | 사용하지 않는 리소스 제거 저는 아직 초보자이므로 이것이 왜 효과가 있었는지 설명 할 수 없습니다. 내 편에서 임의의 선택이었다. 간단하고 자세한 변경이 필요하지 않았고 도움이 될 것이라고 생각했습니다. :)
일부 기호는 '%'와 같이 전송되어야합니다.
<string name="test" formatted="false">95%</string>
참고 URL : https://stackoverflow.com/questions/47589873/exception-aapt2-error-check-logs-for-details
'Programing' 카테고리의 다른 글
Laravel 4 홈을 제외한 모든 경로에서 404 오류 발생 (0) | 2020.12.06 |
---|---|
정수를 로마 숫자로 변환-Java (0) | 2020.12.06 |
클래스 인스턴스 Python 목록 정렬 (0) | 2020.12.06 |
Linux에서 네트워크 포트가 열려 있는지 확인하는 방법은 무엇입니까? (0) | 2020.12.06 |
Django 프로젝트에서`from django.conf import settings`와`import settings`의 차이점은 무엇입니까? (0) | 2020.12.05 |