自从我十天前更新Android工作室以来,我无法构建我的Android项目。我昨天再次更新了,但我还是无法建立项目。最糟糕的是我无法确定这个问题的根源(我真的是Android noob)。
在构建报告窗口中,它显示:
运行构建>运行任务> :app:processDebugResources>执行TaskAction:
org.gradle.tooling.BuildException:无法处理资源,请参阅 aapt输出上面的细节。在 com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask.invokeAaptForSplit(LinkApplicationAndroidResourcesTask.java:512) 在 com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask.doFullTaskAction(LinkApplicationAndroidResourcesTask.java:249) 在 com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:106) 在sun.reflect.GeneratedMethodAccessor179.invoke(未知来源)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:498)at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:46) 在 org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39) 在 org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter $ 1.run(ExecuteActionsTaskExecuter.java:121) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:110) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:92) 在 org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:70) 在 org.gradle.api.internal.tasks.execution.OutputDirectoryCreatingTaskExecuter.execute(OutputDirectoryCreatingTaskExecuter.java:51) 在 org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:62) 在 org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54) 在 org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:60) 在 org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:97) 在 org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:87) 在 org.gradle.api.internal.tasks.execution.ResolveTaskArtifactStateTaskExecuter.execute(ResolveTaskArtifactStateTaskExecuter.java:52) 在 org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52) 在 org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:54) 在 org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43) 在 org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:34) 在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker $ 1.run(DefaultTaskGraphExecuter.java:248) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:336) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:328) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:199) 在 org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:110) 在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:241) 在 org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:230) 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker.processTask(DefaultTaskPlanExecutor.java:123) 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker.access 200 $(DefaultTaskPlanExecutor.java:79) 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker $ 1.execute(DefaultTaskPlanExecutor.java:104) 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker $ 1.execute(DefaultTaskPlanExecutor.java:98) 在 org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:626) 在 org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:581) 在 org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:98) 在 org.gradle.internal.concurrent.ExecutorPolicy $ CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) 在 org.gradle.internal.concurrent.ManagedExecutorImpl $ 1.run(ManagedExecutorImpl.java:46) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:617) 在 org.gradle.internal.concurrent.ThreadFactoryImpl $ ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) 在java.lang.Thread.run(Thread.java:745)抑制: java.lang.RuntimeException:某些文件处理失败,请参阅日志 详细信息 com.android.builder.internal.aapt.QueuedResourceProcessor.waitForAll(QueuedResourceProcessor.java:121) 在 com.android.builder.internal.aapt.QueuedResourceProcessor.end(QueuedResourceProcessor.java:141) 在 com.android.builder.internal.aapt.v2.QueueableAapt2.close(QueueableAapt2.java:104) 在 com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask.doFullTaskAction(LinkApplicationAndroidResourcesTask.java:293) ... 47更多引起: com.android.ide.common.process.ProcessException:无法执行 哎呀 com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:809) 在 com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:797) 在 com.android.build.gradle.internal.res.LinkApplicationAndroidResourcesTask.invokeAaptForSplit(LinkApplicationAndroidResourcesTask.java:491) ... 48更多引起:java.util.concurrent.ExecutionException: java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception:AAPT2错误: 检查日志以获取详细信息 com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:503) 在 com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:482) 在 com.google.common.util.concurrent.AbstractFuture $ TrustedFuture.get(AbstractFuture.java:79) 在 com.android.builder.internal.aapt.AbstractAapt.link(AbstractAapt.java:34) 在 com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:807) ... 50更多引起:java.util.concurrent.ExecutionException: com.android.builder.internal.aapt.v2.Aapt2Exception:AAPT2错误: 检查日志以获取详细信息 com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:503) 在 com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:462) 在 com.google.common.util.concurrent.AbstractFuture $ TrustedFuture.get(AbstractFuture.java:79) 在 com.android.builder.internal.aapt.v2.QueueableAapt2.lambda $ makeValidatedPackage $ 1(QueueableAapt2.java:166) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 在 java.util.concurrent.ThreadPoolExecutor中的$ Worker.run(ThreadPoolExecutor.java:617) ... 1更多引起: com.android.builder.internal.aapt.v2.Aapt2Exception:AAPT2错误: 检查日志以获取详细信息 com.android.builder.png.AaptProcess $ NotifierProcessOutput.handleOutput(AaptProcess.java:443) 在 com.android.builder.png.AaptProcess $ NotifierProcessOutput.err(AaptProcess.java:395) 在 com.android.builder.png.AaptProcess $ ProcessOutputFacade.err(AaptProcess.java:312) 在 com.android.utils.GrabProcessOutput $ 1.run(GrabProcessOutput.java:104)
Java编译器:>链接引用失败
Android问题:> ../../.gradle/caches/transforms-1/files-1.1/actionbarsherlock-4.4.0.aar/278d29925e50f728f41382ea6efbdca1/res/values/values.xml>错误:资源android:attr / popupPromptView是私有的。
自从我2年前创建以来,这个项目使用了actionbarsherlock,这是我项目的第五个版本增量,我从未遇到过这样的问题。
我无效地使缓存无效并清理了项目。我删除了文件夹:.gradle,gradle,grdl,grdl.gradle,.idea,build和deleted .iml文件。
我尝试使用更高的minSdkVersion和compileSdkVersion,没有任何帮助。
我还应该在这里发布什么才能揭示无法建立的原因?
答案 0 :(得分:0)
检查以下内容并更新:
minSdkVersion 16
> = 14 compileSdkVersion 27
27.1.1
android:attr/popupPromptView
并将其删除,因为日志说它现在是私有的。答案 1 :(得分:0)
首先备份项目文件夹。然后删除app内部和app文件夹之外的所有build文件夹。然后删除不需要的其他文件夹和文件除了" app" folder,build.gradle,build.properties,settings.gradle文件。然后在android studio中打开这个项目并添加新的gradle设置。在同步项目并配置了gradle设置后,单击Build - >重建项目。如果一切正确,我认为成功的项目将建立。试试这个。
答案 2 :(得分:0)
我遇到了同样的问题,并按如下方法解决了。
首先,您可以通过将android.enableAapt2=false
添加到项目的gradle.properties
文件中来解决此问题,就像某些人提到的那样,但是此方法很快就会被弃用,因此从长远来看效果不好。
当然,问题是actionbarsherlock
从2014年起不再受支持,并且有些事情中断了。
我通过将actionbarsherlock
引入项目并进行必要的修改来解决了这个问题:
将必要的文件复制到您的项目中,我刚刚从http://actionbarsherlock.com/下载了最新版本。将ActionBarSherlock\actionbarsherlock\src
中的两个文件夹合并到您的项目中,还将ActionBarSherlock\actionbarsherlock\res
链接到android-support-v4.jar
库,该库的任何版本似乎都有效
将com.actionbarsherlock.R
替换为com.yourname.R
删除android:popupPromptView
中的app\src\main\res\values\abs__attrs.xml
(最初的问题制造者)实际上是未使用的资源。
按照here中所述的步骤修复由旧代码引起的次要编译问题。
希望有帮助