Я сейчас пытаюсь адаптировать свой сайт в приложение для Android;поэтому я использую Android Studio 3.5 и использую код этого джентльмена (https://hackernoon.com/how-to-convert-a-website-into-an-android-app-from-scratch-de19c84a5801) в качестве шаблона для приложения (для изучения Android Studio, который я никогда раньше не использовал), но я застрял на том же шаге длябольше времени, чем я хочу признать.
Я попробовал несколько исправлений, упомянутых в похожих вопросах здесь, в Stackoverflow, после бесчисленных ошибок, которые я решил, мне действительно нужно было открыть собственную ветку.
Ошибка компиляции ресурса Android /home/hugo/AndroidStudioProjects/BestBuds/app/src/main/res/layout/main.xml:1: AAPT: ошибка: неправильно сформирована (неверный токен). / Home/hugo/AndroidStudioProjects/BestBuds/app/src/main/res/layout/main.xml: AAPT: ошибка: не удалось скомпилировать файл. org.gradle.internal.exceptions.LocationAwareException: сбой при выполнении задачи ': app: mergeDebugResources'в org.gradle.initialization.exception.DefaultExceptionAnalyser.transform (DefaultExceptionAnalyser.java:99) в org.gradle.initialization.exception.DefaultExceptionAnalyser.collectFailures (DefaultExceptionAnalyser.java:65) в org.gradle.initialization.exception. .gradle.initialization. org.gradle.internal.invocation.GradleBuildController $ 1.execute (GradleBuildController.java:58) в org.gradle.internal.invocation.GradleBuildController $ 1.execute (GradleBuildController.java:55) atternalggrag.create (GradleBuildController.java:82) в org.gradle.internal.invocation.GradleBuildController $ 3.create (GradleBuildController.java:75) в org.gradle.internal.work.DefaultWorkerLeaseService.withLocks (DefaultWorkerLeaseService.java:183) в org.gradle.internal.work.StopShieldingWorkerLeaseService.withLocks (StopShieldingWorkerLedleing. doBuild (GradleBuildController.java:75) в org.gradle.internal.invocation.GradleBuildController.run (GradleBuildController.java:55) в org.gradle.tooling.internal.provider.runner.ClientProvidedRunidedBunidedBuAв org.gradle.launcher.exec.ChainingBuildActionRunner.run (ChainingBuildActionRunner.java:35) в org.gradle.launcher.exec.ChainingBuildActionRunner.run (ChainingBuildActionRunner.java:35) в org.gradle.unun.exe.exeununu(BuildOutcomeReportingBuildActionRunner.java:58) в org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run (ValidatingBuildActionRunner.java:32) в org.gradle.launcher.exec.BuildCompleuRunner.run (BuildCompletionNotifyingBuildActionRunner.java:39) по адресу org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner $ 3.call (RunAsBuildOperationBuildActionRunner.java:51) в org.gradle.laildOUв org.gradle.internal.operations.DefaultBuildOperationExecutor $ CallableBuildOperationWorker.execute (DefaultBuildOperationExecutor.java:416) в org.gradle.internal.operations.DefaultBuildOperationExecutor $ CallableBuildOperationWorkdle.ujOoration (исполнительный класс) исполнительный оператор (операция.DefaultBuildOperationExecutor $ 1.execute (DefaultBuildOperationExecutor.java:165) вorg.gradle.internal.operations.DefaultBuildOperationExecutor.execute (DefaultBuildOperationExecutor.java:250) в org.gradle.internal.operations.DefaultBuildOperationExecutor.execute (DefaultBuildOperationExecutor.jternal:158) at org.oactionDefaultBuildOperationExecutor.java:102) в org.gradle.internal.operations.DelegatingBuildOperationExecutor.call (DelegatingBuildOperationExecutor.java:36) в org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.runeФайл: 78) в org.gradle.launcher.exec.InProcessBuildActionExecuter.execute (InProcessBuildActionExecuter.java:46) в org.gradle.launcher.exec.InProcessBuildActionExecuter.execute (InProcessBuildActionExecuter.java:31) в org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute (BuildTreeScopeBuildActionExecuter.java:42) в org.gradle.laexTreeBjectEbBlayer.exe.gradle. .SubscribeableBuildActionExecuter.execute (SubscribeableBuildActionExecuter.java:59) по адресу org.gradle.tooling.internal.provider.SubscribeableBuildActionExecuter.execute (SubscribeableBuildActionExecuter.java:36.SynExSecue.UntU: 68) в org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter.execute (SessionScopeBuildActionExecuter.java:38) в org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute (GradleThreadBuildActionExecuter.java:37) в org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.g26.Exuter (at).gradle. .StartParamsValidatingActionExecuter.execute (StartParamsValidatingActionExecuter.java:60) в org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute (StartParamsValidating.ecuExA. : 55) в org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute (SessionFailureReportingActionExecuter.java:41) в org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute (SetupLoggingActionExecuter.java:48) в org.gradle.ecuol.Exj.Exj.AjD32) в org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild (ExecuteBuild.java:67) в org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute (BuildCommandOnly.java:36) в org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed (DaemonCommandExecution.java:104) в org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute (WatchForDisconnection.java:37) в org. .daemon.server.api.DaemonCommandExecution.proceed (DaemonCommandExecution.java:104) вorg.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute (ResetDeprecationLogger.java:26) в org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed (DaemonCommandExecution.javag): 10)launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute (RequestStopIfSingleUsedDaemon.java:34) в org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed (DaemonCommandExecudle.lagra. server.exec.ForwardClientInput $ 2.call (ForwardClientInput.java:74) в org.gradle.launcher.daemon.server.exec.ForwardClientInput $ 2.call (ForwardClientInput.java:72) в org.gradle.util.Swapper.swap (Swapper.java:38) в org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute (ForwardClientInput.java:72) в org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed (DaemonCommandExecution104) в org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute (LogAndCheckHealth.java:55) в org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed (DaemonCommandExecution.java:104) в org.gradle.launcher.daemon.server.exec.LogToClient.doBuild (LogToClient.java:62) в org.gradle.launcher.daemon.verc. BuildCommandOnly.execute (BuildCommandOnly.java:36) в org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed (DaemonCommandExecution.java:104) в org.gradle.launcher.daemonildstab.EbildEbBuEУстановитьBuildEnvironment.java:81) в org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute (BuildCommandOnly.java:36) в org.gradle.launcher.daemon.server.api.DaemonCommandExecution.projed: (104) в org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy $ 1.run (StartBuildOrRespondWithBusy.java:50) в org.gradle.launcher.daemon.server.DaemonStateCoordinator $ 1.rj: координатор да (5).gradle.internal.concurrent.ExecutorPolicy $ CatchAndRecordFailures.onExecute (ExecutorPolicy.java:63) в org.gradle.internal.concurrent.ManagedExecutorImpl $ 1.run (ManagedExecutorImpl.java:46) в org.gradle.internal.concurrent.ThreadFactoryImpl $ ManagedThreadRunnable.run (ThreadFactoryImpl.java:55) Вызывается выполнением: org.tastionEx. не удалось выполнить задачу ': app: mergeDebugResources'. в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter $ 3.accept (ExecuteActionsTaskExecuter.java:151) в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter $ 3.accept (ExecuteActionT). .gradle.internal.Try $ Failure.ifSuccessfulOrElse (Try.java:191) в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute (ExecuteActionsTaskExecuter.java:141) в org.gradle.api.execution.ResolveBeforeExecutionStateTaskExecuter.execute (ResolveBeforeExecutionStateTaskExecuter.java:75) при org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute (ValidatingTaskExecuter.java:62) при org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute (SkipEmptySourceFilesTaskExecuter.java:108) в org.gradle.api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute (ResolveBeforeExecutionOutputsTaskExecuter.javain.vetionStateTaskExecuter.execute (ResolveAfterPreviousExecutionStateTaskExecuter.java:46) в org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute (CleanupStaleOutputsExecu..ecu..ecu.. FinalizePropertiesTaskExecuter.java:46) в org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute (ResolveTaskExecutionModeExecuter.java:95) вorg.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute (SkipTaskWithNoActionsExecuter.java:57) в org.gradle.api.internal.tasks.execution.SkipecunlyIfTaskExg. api.internal.tasks.execution.CatchExceptionTaskExecuter.execute (CatchExceptionTaskExecuter.java:36) в org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter $ 1.executeTask (EventFiringTaskExdlein.ava) orj.ava. .tasks.execution.EventFiringTaskExecuter $ 1.call (EventFiringTaskExecuter.java:52) в org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter $ 1.call (EventFiringTaskExecuter.java:49) в org.eco. $ CallableBuildOperationWorker.execute (DefaultBuildOperationExecutor.java:416) в org.gradle.internal.operations.DefaultBuildOperationExecutor $ CallableBuildOperationWorker.execute (DefaultBuildOperationExecutor.jternal:406) в org.operatoonExecutor $ 1.execute (DefaultBuildOperationExecutor.java:165) в org.gradle.internal.operations.DefaultBuildOperationExecutor.execute (DefaultBuildOperationExecutor.java:250) в org.gradle.internal.operations.DefaultBuildOperationEx15.jpgorg.gradle.internal.operations.DefaultBuildOperationExecutor.call (DefaultBuildOperationExecutor.java:102) в org.gradle.internal.operations.DelegatingBuildOperationExecutor.call (DelegatingBuildOperationExecutor.java:36) в org.graternal.ks.i. EventFiringTaskExecuter.execute (EventFiringTaskExecuter.java:49) в org.gradle.execution.plan.LocalTaskNodeExecutor.execute (LocalTaskNodeExecutor.java:43) в org.gradle.execution.taskgraph.DefaultTaskExeuв org.gradle.execution.taskgraph.DefaultTaskExecutionGraph $ InvokeNodeExecutorsAction.execute (DefaultTaskExecutionGraph.java:343) в org.gradle.execution.taskgraph. DefaultTaskExecutionGraph $ BuildOperationAwareExecutionAction.execute (DefaultTaskExecutionGraph.java:336) в org.gradle.execution.taskgraph.DefaultTaskExecutionGraph $ BuildOperationAwareExecutionAction.execute (DefaultTaskExecutionGlayPlay.Exec.Gelange.gee.gee.java: 134) в org.gradle.execution.plan.DefaultPlanExecutor $ ExecutorWorker $ 1.execute (DefaultPlanExecutor.java:129) в org.gradle.execution.plan.DefaultPlanExecutor $ ExecutorWorker.execute (DefaultPlanExecutor.javag2).gradle.execution.plan.DefaultPlanExecutor $ ExecutorWorker.executeNextNode (DefaultPlanExecutor.java:193) в org.gradle.execution.plan.DefaultPlanExecutor $ ExecutorWorker.run (DefaultPlanExecutor.java:129) ... или еще 3-й причине. gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter $ MultipleTaskActionFailures: произошло несколько сбоев действий задачи: в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter $ 5.run (ExecuteteActionsTaskExecuter.java:427) по адресу org.gradle.internal.operations.DefaultBuildOperationExecutor $ RunnableBuildOperationWorker.execute (DefaultBuildOperationExecutor.java:402) по адресу org.gradle.internal.operations.DefaultBuildOctionBecureBecureBaseUecU.gradle.internal.operations.DefaultBuildOperationExecutor $ 1.execute (DefaultBuildOperationExecutor.java:165) в org.gradle.internal.operations.DefaultBuildOperationExecutor.execute (DefaultBuildOperationExecutor.java:250) в org. DefaultBuildOperationExecutor.java:158) в org.gradle.internal.operations.DefaultBuildOperationExecutor.run (DefaultBuildOperationExecutor.java:92) вorg.gradle.internal.operations.DelegatingBuildOperationExecutor.run (DelegatingBuildOperationExecutor.java:31) в org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction (ExecuteActionsTaskExecutern.jg. org.in.g. Задачи.ExecuteActionsTaskExecuter $ TaskExecution.execute (ExecuteActionsTaskExecuter.java:213) в org.gradle.internal.execution.steps.ExecuteStep.lambda $ выполнить $ 0 (ExecuteStep.java:32) в org.gradle.internal.executetete. выполнить (ExecuteStep.java:32) в org.gradle.internal.execution.steps.ExecuteStep.execute (ExecuteStep.java:26) в org.gradle.internal.execution.steps.CleanupOutputsStep.execute (CleanupOutputsStep.java:58)в org.gradle.internal.execution.steps.CleanupOutputsStep. выполнить (CleanupOutputsStep.java:35) по адресу org.gradle.internal.execution.steps.ResolveInputChangesStep.execute (ResolveInputChangesStep.java:48) по адресу org.gradle.internal.execution.steps.ResolveInputChangesSolv.Step.Steps.TevStep.Steps.TevStepStepStevStepStevStepSte_StepStepSte_Ste_Ste_Ste_Ste_Ste_Ste_SteStep))). в org.gradle.internal.execution.steps.CancelExecutionStep.execute (CancelExecutionStep.java:39) в org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout (TimeoutStep.java:73) в org.gration. .steps.TimeoutStep.execute (TimeoutStep.java:54) в org.gradle.internal.execution.steps.CatchExceptionStep.execute (CatchExceptionStep.java:35) в org.gradle.internal.execution.steps.CreateOutputsStepte.java: 51) в org.gradle.internal.execution.steps.SnapshotOutputsStep.execute (SnapshotOutputsStep.java:45) в org.gradle.internal.execution.steps.SnapshotOutputsStep.execute (SnapshotOutputsStep.java:31). gradle.internal.execution.steps.CacheStep.executeWithoutCache (CacheStep.java:201) в org.gradle.internal.execution.steps.CacheStep.execute (CacheStep.java:70) в org.gradle.internal.execution.steps.CacheStep.execute (CacheStep.java:45) в org.gradle.internal.execution.steps.BroadcastChangingOutputs. выполнить (BroadcastChangingOutputsStep.java:49) по адресу org.gradle.internal.execution.steps.StoreSnapshotsStep.execute (StoreSnapshotsStep.java:43) по адресу org.gradle.internal.execution.steps.StoreSnapshotsStep.jp (в org.gradle.internal.execution.steps.RecordOutputsStep.execute (RecordOutputsStep.java:38) в org.gradle.internal.execution.steps.RecordOutputsStep.execute (RecordOutputsStep.java:24) в org.gradle. .steps.SkipUpToDateStep.executeBecause (SkipUpToDateStep.java:96) в org.gradle.internal.execution.steps.SkipUpToDateStep.lambda $ execute $ 0 (SkipUpToDateStep.jp. выполнить (SkipUpToDateStep.java:54) в org.gradle.internal.execution.steps.SkipUpToDateStep.execute (SkipUpToDateStep.java:38) в илиg.gradle.internal.execution.steps.ResolveChangesStep.execute (ResolveChangesStep.java:77) в org.gradle.internal.execution.steps.ResolveChangesStep.execute (ResolveChangesStep.java:37) в org.grand. steps.legacy.MarkSnapshottingInputsFinishedStep.execute (MarkSnapshottingInputsFinishedStep.java:36) в org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute (MarkSnapshottingdleternal.Step. выполнить (ResolveCachingStateStep.java:90) в org.gradle.internal.execution.steps.ResolveCachingStateStep.execute (ResolveCachingStateStep.java:48) в org.gradle.internal.execution.impl.DefaultWorkExecutor.execu.ecuteвorg.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute (ExecuteActionsTaskExecuter.java:120) ... еще 35 причин: org.gradle.workers.internal.DefaultWorkerExecutor $ WorkExecutionException: произошла ошибка во время выполнения comroid и выполнение.build.gradle.internal.tasks.Workers $ ActionFacade на org.gradle.workers.internal.DefaultWorkerExecutor $ WorkerExecution.waitForCompletion (DefaultWorkerExecutor.java:285) в org.gradle.internal.work.DefaultAsyncWorkTraailA115) в org.gradle.internal.work.DefaultAsyncWorkTracker.access $ 000 (DefaultAsyncWorkTracker.java:34) в org.gradle.internal.work.DefaultAsyncWorkTracker $ 2.run (DefaultAsyncWorkTracker.java:83) в org.gradle.internal.Factories$ 1.create (Factories.java:25) в org.gradle.internal.work.DefaultWorkerLeaseService.withoutLocks (DefaultWorkerLeaseService.java:254) в org.gradle.internal.work.DefaultWorkerLeaseService.withoutProjectLockeService.ereпо адресу org.gradle.internal.work.DefaultWorkerLeaseService.withoutProjectLock (DefaultWorkerLeaseService.java:159) по адресу org.gradle.internal.work.StopShieldingWorkerLeaseService.withoutProjectLock (StopShieldingWorkternalAsom. (DefaultAsyncWorkTracker.java:79) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter $ 5.run (ExecuteActionsTaskExecuter.java:412) ... еще 80. Вызвано: com.android.builder.internal.aapt.v2.Aapt2Exception: ошибка компиляции ресурса Android /home/hugo/AndroidStudioProjects/BestBuds/app/src/main/res/layout/main.xml:1: AAPT: ошибка: неправильно сформирован (недопустимый токен). /home/hugo/AndroidStudioProjects/BestBuds/app/src/main/res/layout/main.xml: AAPT: ошибка: файл не скомпилирован. в com.android.builder.internal.aapt.v2.Aapt2Exception $ Companion.create (Aapt2Exception.kt: 45) в com.android.builder.internal.aapt.v2.Aapt2Exception $ Companion.create $ default (Aapt2Exception.kt:39) в com.android.build.gradle.internal.res.Aapt2ErrorUtils.rewriteException (Aapt2ErrorUtils.kt: 195) в com.android.build.gradle.internal.res.Aapt2ErrorUtils.rewriteCompileException (Aapt2ErrorUtils.):.android.build.gradle.internal.res.Aapt2CompileRunnable $ run $ 1.invoke (Aapt2CompileRunnable.kt: 40) в com.android.build.gradle.internal.res.Aapt2CompileRunnable $ run $ 1.invoke (Aapt2CompileRunn):по адресу com.android.build.gradle.internal.res.namespaced.Aapt2DaemonManagerService.useAaptDaemon (Aapt2DaemonManagerService.kt: 66) по адресу com.android.build.gradle.internal.res.namespaced.Aapt2DaemonMmonaper по умолчанию64) на com.android.build.gradle.internal.res.Aapt2CompileRunnable.run (Aapt2CompileRunnable.kt: 35) на com.android.build.gradle.internal.tasks.Workers $ ActionFacade.run (Workers.kt: 335) по адресу org.gradle.workers.internal.DefaultWorkerServer.execute (DefaultWorkerServer.java:39) по адресу org.gradle.workers.internal.NoIsolationWorkerFactory $ 1 $ 1.execute (NoIsoloryWorks)61) в org.gradle.workers.internal.AbstractWorker $ 1.call (AbstractWorker.java:44) в org.gradle.workers.internal.AbstractWorker $ 1.call (AbstractWorker.java:41) в org.gradle.internal.operations.DefaultBuildOperationExecutor $ CallableBuildOperationWorker.execute (DefaultBuildOperationExecutor.java:416) в org.gradle.internal.operations.DefaultBuildOperationExecutor $ CallableBuildOperationWorker.execute (DefaultBuildOperationExactionOguardOu.Exu.Exu.Exu.Exu.jp)Java: 165) в org.gradle.internal.operations.DefaultBuildOperationExecutor.execute (DefaultBuildOperationExecutor.java:250) вorg.gradle.internal.operations.DefaultBuildOperationExecutor.execute (DefaultBuildOperationExecutor.java:158) в org.gradle.internal.operations.DefaultBuildOperationExecutor.call (DefaultBuildOperationExecutor.java:102) в org.operationBid.ternalDelegatingBuildOperationExecutor.java:36) в org.gradle.workers.internal.AbstractWorker.executeWrappedInBuildOperation (AbstractWorker.java:41) в org.gradle.workers.internal.NoIsolationWorkerFactory $ 1.execute (NoIdlegroup). worker.internal.DefaultWorkerExecutor $ 1.call (DefaultWorkerExecutor.java:105) в org.gradle.workers.internal.DefaultWorkerExecutor $ 1.call (DefaultWorkerExecutor.java:99) в org.gradle.internal.work.DefaultConditionalExecutionQueue (исполнение $ исполнение)DefaultConditionalExecutionQueue.java:215) в org.gradle.internal.work.DefaultConditionalExecutionQueue $ ExecutionRunner.runBatch (DefaultConditionalExecutionQueue.java:164) в org.gradle.internal.work.DefaultConditionalExecutionQueue $ ExecutionRunner.run (DefaultConditionalExecutionQueue.java:131) ... еще 3