Я пытаюсь создать гибридное мобильное приложение Salesforce для Android с помощью команды forcehybrid create.К сожалению, я получил ошибку сборки.Который я не получаю в своем терминале, когда я запускаю другой проект с командой Cordova create.Только две только что упомянутые первой команды отличаются, после этих первых команд это только команды Cordova (до сборки).Поэтому мне интересно, почему моя сборка не удалась.
Я работаю с
- Mac OS Sierra 10.13.6
- Npm 3.10.8
- Узел 6.9.0
- Android studio 3.2 (хотя я делаю все через cli)
- Версия Gradle 4.1
- Cordova 8.0.0
Требования Cordova в forcehybrid и приложении 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-студии:
Настройки Android-студии
Файл build.gradle
Файл build.gradle:
Ошибка, с которой я столкнулся после выполнения команды сборки Cordova --stacktrace
25 выполнимых задач: 1 выполнено, 24актуальный (узел: 47775)UnhandledPromiseRejectionWarning: необработанное отклонение обещания (идентификатор отклонения: 1): ошибка: / Users / andygummer / Рабочий стол / Проекты / практика / forcehybrid / forcehybridworks / platform / 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:drawon/s) не найдено./Users/andygummer/Desktop/Projects/practise/forcehybrid/forcehybridworks/platforms/android/app/build/intermediates/manifests/full/debug/AndroidManifest.xml:32: ошибка: ресурс drawable / sf__icon (он же nl.m: drawable / sf__icon) не найден.ошибка: не удалось обработать манифест.
Не удалось выполнить aapt com.android.ide.common.process.ProcessException: Не удалось выполнить aapt в 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.doFullTaskAction (ProcessAndroidResources.com.bu.28):gradle.internal.tasks.IncrementalTask.taskAction (IncrementalTask.java:109) в sun.reflect.NativeMethodAccessorImpl.invoke0 (родной метод) в sun.reflect.NativeMethodAccessorImpl.inccessemphodeвызвать (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 $ IncrementalTaskAction.doExecute (DefaultTaskClassInfoStore.java:173) в org.gradle.api.internal.project.taskfactory.DefaultTaskClassInfoStore $ StandardTaskAction.execute (DefaultTaskClassInfoStore.java:134) в org.gradle.api.tefas.Core.execute (DefaultTaskClassInfoStore.java:121) в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter $ 1.run (ExecuteActionsTaskExecuter.java:122) в org.gradle.internal.progress.DefaultBuildOperationEx.BecueUpUUUUUUU $: 336) в org.gradle.internal.progress.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute (DefaultBuildOperationExecutor.java:328) в орг.gradle.internal.progress.DefaultBuildOperationExecutor.execute (DefaultBuildOperationExecutor.java:197) в org.gradle.internal.progress.DefaultBuildOperationExecutor.run (DefaultBuildOperationExecutor.java:107) в org.gradle.api.exas.ecas.executeAction (ExecuteActionsTaskExecuter.java:111) в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions (ExecuteActionsTaskExecuter.java:92) в org.gradle.api.internal.tasksTextain.tasksTexTexecutionjava: 70) at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute (SkipUpToDateTaskExecuter.java:63) в org.gradle.api.internal.tasks.execution.ResolveTavaTasterStateTutв 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.Exask.ExasToWT: 52) atgorg.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute (CatchExceptionTaskExecuter.java:34) в org.gradle.execution.taskgraph.DefaultTaskGraphExecuter $ EventFiringTaskWorker $ 1.run: DefaultTacg.jpg.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 (DefaultBuildOperation.gra..taskgraph.(DefaultTaskPlanExecutor.java:124) по адресу org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker.access $ 200 (DefaultTaskPlanExecutor.java:80) по адресу org.gradle.execution.taskgraph.DefaultTasorkExex.ecexecutor.ecec5) в org.gradle.execution.taskgraph.DefaultTaskPlanExecutor $ TaskExecutorWorker $ 1.execute (DefaultTaskPlanExecutor.java:99) в org.gradle.исполнительный процессJava: 99) в org.gradle.internal.concurrent.ExecutorPolicy $ CatchAndRecordFailures.onExecute (ExecutorPolicy.java:63) в org.gradle.internal.concurrent.ManagedExecutorImpl $ 1.run (ManagedExecutorImpl.java:):concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624) в org.gradle.internal.concurrent.ThreadFactjImpl55)at 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.ecunPecutor: 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.GrabProcessOerput.run (GrabProcessOutput.java:104)
FAILURE: сборка не удалась с исключением.
- Что пошло не так: выполнение задачи не выполнено ': app: processDebugResources'.
Не удалось выполнить aapt
Информация, которую я нашел в StackOverflow ( Android Studio AndroidManifest.xml против build.gradle ) привел ко мне установку:
- compileSdkVersion
- targetSdkVersion
- buildToolsVersion
На следующее:
файл build.gradle
Информация, которую я нашел об androidManifest в StackOverflow ( Cordova не создает AndroidManifest.xml ), состоит в том, что некоторые плагины используют теги исходного файла для вещейэто не исходный код, который создает папку res (или lib), которая вводит в заблуждение Cordova, заставляя его верить, что это старый проект Eclipse, хотя на самом деле это проект студии Android, и ищет файлы в старых местах вместо того, чтобы заглядывать вновые местоположения.
Проблема, с которой я столкнулся, заключается в том, что у меня есть папка res в моем проекте Cordova, как и в моем проекте forcehybrid.Так почему же мой проект Cordova создается с папкой res, а forcehybrid - нет?
Я попытался переместить файл androidManifest.xml из двух папок app / src / main в папку приложения.,Но это не работает, когда файл удаляется из основной папки, так что это не совсем решение.
Может кто-нибудь дать мне совет, пояснив, почему сборка Cordova работает при запуске с Cordova create ине с salesforce создать?