forcehybrid构建失败:app:processDebugResources

时间:2018-10-19 11:45:50

标签: cordova

我正在尝试使用forcehybrid create命令为Android构建Salesforce混合移动应用程序。不幸的是,我得到一个构建失败的错误。当我使用Cordova create命令启动另一个项目时,我没有进入终端。仅两个刚才提到的第一个命令是不同的,在这些第一个命令之后,它只是Cordova命令(直到构建)。所以我想知道为什么我的构建失败。

我正在与

一起工作
  • Mac OS High Sierra 10.13.6
  • Npm 3.10.8
  • 节点6.9.0
  • Android Studio 3.2(尽管我通过cli进行了所有操作)
  • 4.1版的
  • 科尔多瓦8.0.0

forcehybrid和Cordova应用程序中的Cordova要求(相等)

  • Java JDK:已安装1.8.0
  • Android SDK:已安装true
  • Android目标:已安装android-28,android-27,android-26,android-25,android-24,android-23,android-22,android-21
  • Gradle:已安装/usr/local/Cellar/gradle/4.10.2/bin/gradle

Android Studio设置:

Android studio settings

build.gradle文件

The build.gradle file:

运行命令Cordova build命令--stacktrace

后遇到的错误
  

25个可执行任务:已执行1个,最新24个(节点:47775)   UnhandledPromiseRejectionWarning:未处理的承诺被拒绝   (拒绝ID:1):错误:   /用户/ andygummer /桌面/项目/实践/ forcehybrid / forcehybridworks / platforms / android / gradlew:   命令失败,退出代码为1错误输出:   /Users/andygummer/Desktop/Projects/practise/forcehybrid/forcehybridworks/platforms/android/app/build/intermediates/manifests/full/debug/AndroidManifest.xml:32:   AAPT:错误:资源可绘制/ sf__icon(又名   找不到nl.forcehybridworks.mobile:drawable/sf__icon)。        /Users/andygummer/Desktop/Projects/practise/forcehybrid/forcehybridworks/platforms/android/app/build/intermediates/manifests/full/debug/AndroidManifest.xml:32:   错误:资源可绘制/ sf__icon(又名   找不到nl.forcehybridworks.mobile:drawable/sf__icon)。错误:失败   处理清单。

     

无法执行Aapt   com.android.ide.common.process.ProcessException:执行失败   适应于   com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:796)     在   com.android.build.gradle.tasks.ProcessAndroidResources.invokeAaptForSplit(ProcessAndroidResources.java:551)     在   com.android.build.gradle.tasks.ProcessAndroidResources.doFullTask​​Action(ProcessAndroidResources.java:285)     在   com.android.build.gradle.internal.tasks.IncrementalTask​​.taskAction(IncrementalTask​​.java:109)     在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法)处   sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     在   sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     在java.lang.reflect.Method.invoke(Method.java:498)在   org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73)在   org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore $ IncrementalTask​​Action.doExecute(DefaultTaskClassInfoStore.java:173)     在   org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore $ StandardTaskAction.execute(DefaultTaskClassInfoStore.java:134)     在   org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore $ StandardTaskAction.execute(DefaultTaskClassInfoStore.java:121)     在   org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter $ 1.run(ExecuteActionsTaskExecuter.java:122)     在   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:197)     在   org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)     在   org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:111)     在   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.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:63)     在   org.gradle.api.internal.tasks.execution.ResolveTaskOutputCachingStateExecuter.execute(ResolveTaskOutputCachingStateExecuter.java:54)     在   org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)     在   org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:88)     在   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:197)     在   org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:107)     在   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:124)     在   org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker.access $ 200(DefaultTaskPlanExecutor.java:80)     在   org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker $ 1.execute(DefaultTaskPlanExecutor.java:105)     在   org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker $ 1.execute(DefaultTaskPlanExecutor.java:99)     在   org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.execute(DefaultTaskExecutionPlan.java:625)     在   org.gradle.execution.taskgraph.DefaultTaskExecutionPlan.executeWithTask(DefaultTaskExecutionPlan.java:580)     在   org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker.run(DefaultTaskPlanExecutor.java:99)     在   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:1149)     在   java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)     在   org.gradle.internal.concurrent.ThreadFactoryImpl $ ManagedThreadRunnable.run(ThreadFactoryImpl.java:55)     在java.lang.Thread.run(Thread.java:748)造成原因:   java.util.concurrent.ExecutionException:   java.util.concurrent.ExecutionException:   com.android.tools.aapt2.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.core.AndroidBuilder.processResources(AndroidBuilder.java:794)     ... 48更多原因:java.util.concurrent.ExecutionException:   com.android.tools.aapt2.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:179)     在   java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)     在   java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:624)     ... 1更多原因:com.android.tools.aapt2.Aapt2Exception:AAPT2   错误:请在以下位置查看日志以获取详细信息   com.android.builder.png.AaptProcess $ NotifierProcessOutput.handleOutput(AaptProcess.java:454)     在   com.android.builder.png.AaptProcess $ NotifierProcessOutput.err(AaptProcess.java:411)     在   com.android.builder.png.AaptProcess $ ProcessOutputFacade.err(AaptProcess.java:332)     在   com.android.utils.GrabProcessOutput $ 1.run(GrabProcessOutput.java:104)

     

失败:构建失败,并出现异常。

     
      
  • 出了什么问题:任务':app:processDebugResources'的执行失败。      
        

    无法执行aapt

      
  •   

我在StackOverflow(Android Studio AndroidManifest.xml vs build.gradle)上找到的信息导致我进行设置:

  • compileSdkVersion
  • targetSdkVersion
  • buildToolsVersion

到以下内容:

build.gradle file

我在StackOverflow(Cordova does not create AndroidManifest.xml)上发现的有关androidManifest的信息是,有些插件使用源文件标签来处理非源代码,这会创建一个res文件夹(或lib),这会使Cordova感到困惑,它认为这是一个旧的Eclipse项目,而实际上却是一个Android Studio项目,因此会在旧位置搜索文件,而不是查找新位置。

这里的问题是,我的Cordova项目中有一个res文件夹,就像我的forcehybrid项目中一样。那么,我的Cordova项目如何在其中确实带有res文件夹的情况下构建,而forcehybrid却没有呢?

我尝试将androidManifest.xml从我的app / src / main两个文件夹移至我的app文件夹。但这在从主文件夹中删除文件后不起作用,因此这并不是真正的解决方案。

有人可以给我一些指导,以阐明为什么在使用Cordova create而不是使用salesforce create进行启动时,Cordova构建为何可以工作吗?

0 个答案:

没有答案