Cause error 86 bad cpu type in executable

Please provide all the information requested. Issues that do not follow this format are likely to stall. Description org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':rea...

Please provide all the information requested. Issues that do not follow this format are likely to stall.

Description

org.gradle.api.tasks.TaskExecutionException: Execution failed for task ‘:react-native-smart-barcode:processDebugResources’.
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:66)
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.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:53)
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:203)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter$EventFiringTaskWorker.execute(DefaultTaskGraphExecuter.java:185)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:66)
at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:50)
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:25)
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:110)
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.access$000(DefaultBuildExecuter.java:23)
at org.gradle.execution.DefaultBuildExecuter$1.proceed(DefaultBuildExecuter.java:43)
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:37)
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:30)
at org.gradle.initialization.DefaultGradleLauncher$4.run(DefaultGradleLauncher.java:153)
at org.gradle.internal.Factories$1.create(Factories.java:22)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:53)
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:150)
at org.gradle.initialization.DefaultGradleLauncher.access$200(DefaultGradleLauncher.java:32)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:98)
at org.gradle.initialization.DefaultGradleLauncher$1.create(DefaultGradleLauncher.java:92)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:91)
at org.gradle.internal.progress.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:63)
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:92)
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:83)
at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:99)
at org.gradle.tooling.internal.provider.runner.BuildModelActionRunner.run(BuildModelActionRunner.java:46)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.tooling.internal.provider.runner.SubscribableBuildActionRunner.run(SubscribableBuildActionRunner.java:58)
at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:48)
at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:30)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:81)
at org.gradle.launcher.exec.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:46)
at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:52)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:37)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:26)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:34)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:74)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:72)
at org.gradle.util.Swapper.swap(Swapper.java:38)
at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:72)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.health.DaemonHealthTracker.execute(DaemonHealthTracker.java:47)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:72)
at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:36)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.health.HintGCAfterBuild.execute(HintGCAfterBuild.java:41)
at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:120)
at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:50)
at org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:237)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:54)
at org.gradle.internal.concurrent.StoppableExecutorImpl$1.run(StoppableExecutorImpl.java:40)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.RuntimeException: com.android.ide.common.process.ProcessException: Failed to execute aapt
at com.android.build.gradle.tasks.ProcessAndroidResources.doFullTaskAction(ProcessAndroidResources.java:185)
at com.android.build.gradle.internal.tasks.IncrementalTask.taskAction(IncrementalTask.java:82)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:75)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.doExecute(AnnotationProcessingTaskFactory.java:245)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:221)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$IncrementalTaskAction.execute(AnnotationProcessingTaskFactory.java:232)
at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:210)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
… 73 more
Caused by: com.android.ide.common.process.ProcessException: Failed to execute aapt
at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:873)
at com.android.build.gradle.tasks.ProcessAndroidResources.doFullTaskAction(ProcessAndroidResources.java:178)
… 85 more
Caused by: java.util.concurrent.ExecutionException: org.gradle.process.internal.ExecException: A problem occurred starting process ‘command ‘/Users/zhuxiuwu/Library/Android/sdk/build-tools/23.0.3/aapt»
at com.google.common.util.concurrent.AbstractFuture$Sync.getValue(AbstractFuture.java:299)
at com.google.common.util.concurrent.AbstractFuture$Sync.get(AbstractFuture.java:286)
at com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:116)
at com.android.builder.core.AndroidBuilder.processResources(AndroidBuilder.java:871)
… 86 more
Caused by: org.gradle.process.internal.ExecException: A problem occurred starting process ‘command ‘/Users/zhuxiuwu/Library/Android/sdk/build-tools/23.0.3/aapt»
at org.gradle.process.internal.DefaultExecHandle.setEndStateInfo(DefaultExecHandle.java:197)
at org.gradle.process.internal.DefaultExecHandle.failed(DefaultExecHandle.java:327)
at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:86)
… 5 more
Caused by: net.rubygrapefruit.platform.NativeException: Could not start ‘/Users/zhuxiuwu/Library/Android/sdk/build-tools/23.0.3/aapt’
at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:27)
at net.rubygrapefruit.platform.internal.WrapperProcessLauncher.start(WrapperProcessLauncher.java:36)
at org.gradle.process.internal.ExecHandleRunner.run(ExecHandleRunner.java:68)
… 5 more
Caused by: java.io.IOException: Cannot run program «/Users/zhuxiuwu/Library/Android/sdk/build-tools/23.0.3/aapt» (in directory «/Users/zhuxiuwu/space/native/xunta-reactnative/node_modules/react-native-smart-barcode/android»): error=86, Bad CPU type in executable
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at net.rubygrapefruit.platform.internal.DefaultProcessLauncher.start(DefaultProcessLauncher.java:25)
… 7 more
Caused by: java.io.IOException: error=86, Bad CPU type in executable
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.(UNIXProcess.java:247)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)

React Native version:

0.44.3
macOS
10.15.4. 8G

Steps To Reproduce

Provide a detailed list of steps that reproduce the issue.

1.React Native 0.44.3初始化项目
2.使用android studio 运行

Expected Results

error=86, Bad CPU type in executable

Some macOS users are reportedly getting the “bad CPU type in executable” error when running commands from the Terminal. This issue is most often met in macOS 10.15 “Catalina” and macOS 11 “Big Sur”.

bad CPU type in executable

As it turns out, this particular issue can occur due to several different common scenarios. Here’s a list of potential culprits that might be triggering this error code:

  • Old, non-compatible programs – Since Catalina, macOS dropped support for 32-bit executables. So if your program did not made it to 64-bit or some of its libraries are still 32-bit, it may not run properly.
  • Rosetta 2 not installed – Apple M1 is an ARM-based chip, different from the Intel processors used in the prior devices. Software needs to be translated from x86 instructions to ARM via Rosetta 2 to be able to run on M1-based devices. Double check that Rosetta 2 is installed on your system.

Update your software

As it turns out, one of the most common instances that might trigger this problem is your software of choice is built for 32-bit system. “bad CPU type in executable”, despite being vague, is just a simple message indicates that your software is not compatible.

Most modern software has a built-in update mechanism, but if it does not, try grabbing the latest version of your software from its official website to see whether the error message goes away.

Install Rosetta 2

When macOS tries to run an app that is not built for Apple-made chip (Apple Silicon), macOS will prompt to install Rosetta 2 to automatically translate the app from x86 to ARM instructions.

But if you run commands in the Terminal, there is no automatic detection for missing Rosetta.

In rare cases, users who recover their Mac from a backup won’t get Rosetta 2 during the restoration process.

If you haven’t been prompted to install Rosetta 2, please manually install it by running the following command.

/usr/sbin/softwareupdate --install-rosetta --agree-to-license

Once you got Rosetta installed, you can run the entire terminal app using Rosetta by opening Get Info on Terminal.app in Finder and check the Open using Rosetta box. This way, Terminal and any command or binary it tries to run will go through Rosetta, so you don’t have to worry about manually open each of them manually.

Find all 32-bit executables in your Mac

Now that you know the problem is all about the software is not compatible with the processor and overall architecture, you may ask : How do I know which program I need to reinstall/replace?

Most, if not all, programs you can run from Terminal app are placed in a system path. $PATH environment variable contains all of those path. Here’s a quick command you can run in Terminal to list any 32-bit binaries in your $PATH on macOS-based device.

find `echo $PATH | tr ":" "n"` -perm +1111 -exec file {} ; | grep i386

Code language: PHP (php)

Find all 32-bit executables in your Mac

Replace all of those programs with 64-bit compatible binaries and you should be good to go.

Replace software with native ARM builds

To find programs which are not compatible with the system (64-bit ready), we can go to System Information > Software. Here you have to inspect Applications and Legacy Software section for any 32-bit software as in the screenshot below.

Replace software with native ARM builds

When searching for 64-bit or ARM-native software, look for something with “SiMac” or “Apple Silicon” or “ARM64”.

Fix bad CPU type in executable for Android Studio

If you’re an Android application developer, you should be looking for solutions to fix your code. In that case, ValueInBrief post is an excellent guide, which may save you hours of debugging time. Quick summary, the solution involved setting renderscriptSupportModeEnabled to false or switch from androidx libraries to the old support libraries. Consult the original post for detailed guide.

I am getting the error when I am running a program on the MacBook Pro M1 system.

error: failed to run custom build command for `libp2p-kad v0.30.0`

Caused by:

process didn’t exit successfully: `/Users/pankajchaudhary/Desktop/substrate-node-template/target/release/build/libp2p-kad-0453d89e20c9d740/build-script-build` (exit status: 101)

— stderr

thread ‘main’ panicked at ‘called `Result::unwrap()` on an `Err` value: Custom { kind: Other, error: «failed to invoke protoc (hint: https://docs.rs/prost-build/#sourcing-protoc): Bad CPU type in executable (os error 86)» }’, /Users/pankajchaudhary/.cargo/registry/src/github.com-1ecc6299db9ec823/libp2p-kad-0.30.0/build.rs:22:63

note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

warning: build failed, waiting for other jobs to finish…

error: build failed

MacBook Pro 13″,

macOS 11.5

Posted on Aug 6, 2021 1:31 AM

MacOS Catalina (v10.15) and newer versions only support 64-bit applications. Additionally, Apple has recently transitioned Macs from Intel’s x86-64 processors to ARM64 architecture.

So, if you’re on an older Mac sporting an Intel chip or you’re trying to run a program coded for the wrong architecture, you’ll face the Bad CPU Type in Executable error.

You can usually solve this error by using the 64-bit version of the program and additionally installing Rosetta if necessary. We’ve detailed these and more solutions in the article below.

What causes the Bad CPU Type in Executable Error?

As stated, 32-bit programs are no longer supported on Macs, starting with macOS Catalina. In addition to this, attempting to run programs designed for Intel processors leads to incompatibility in newer ARM64-based Macs which can also cause this error.

Since 32-bit code or incompatible architecture is no longer acceptable on v10.15 and later, developers should update the source accordingly. As a consumer, you can try some of the solutions we’ve listed below.

Use 64-bit Build

Whether it’s an application or a CLI tool that you’re encountering this error on, the easiest way to resolve it is to use a version compiled for ARM64 architecture.

Sometimes, even after installing the 64-bit version of the program, you may still face this error. In such cases, there are likely additional issues that you can resolve with the solutions listed below.

Set Zsh as Default Shell

Zsh (Z shell) is supposed to be the default login and interactive shell in macOS Catalina and later versions. But sometimes, this may not be the case due to unintentional changes, which can ultimately lead to issues like the Bad CPU Type in Executable error. So, you can set Zsh as the default shell with the following steps:

  1. Click on the Apple Menu and select System Preferences > Users & Groups.
    system-preferences-users-and-groups
  2. Press the lock and input your account credentials.
  3. From the user list on the left pane, control-click your user name and select Advanced Options.
  4. Select Zsh from the Login shell menu and press OK to apply the changes.
    mac-login-shell-users-groups

Install Rosetta 2

You may be aware of the Mac transition to Apple silicon that Tim Cook announced in June 2020. Macs used Intel processors for almost 15 years before recently switching to Apple-designed ARM64 CPUs. Many programs designed to run on Intel processors haven’t yet been revised for the new silicon chips.

Apple understands this, which is why Rosetta, a dynamic binary translator, was reintroduced as Rosetta 2 in macOS Big Sur. The first time you try to run an incompatible program, you will automatically be prompted to install Rosetta 2. Here, you can press Install and input your account credentials to fix the issue. But this is via the GUI.

macos-big-sur-software-update-rosetta-alert

The Terminal doesn’t automatically detect that Rosetta is missing. As such, if you attempt to execute an incompatible program via the terminal, you’ll encounter the Bad CPU Type in Executable error. You can resolve such issues by manually installing Rosetta 2 with the following steps:

  1. Press Command + Spacebar to bring up the spotlight, type terminal, and press Enter.
  2. Execute the following command in the terminal:
    softwareupdate – install-rosetta
    softwareupdate-install-rosetta
  3. Type a and press Enter to accept the license agreement.
  4. You should see a message stating Install of Rosetta 2 finished successfully. As Rosetta works automatically in the background, you should be able to run previously incompatible programs without any issues now.
    install-of-rosetta-2-finished-succesfully

Update macOS

In macOS versions earlier than Monterey 12.1, some binaries were still compiled for x86 processors. But the non-ARM binaries have been updated in the newer versions. So if you’re on an older macOS version, now may be a good time to update your Mac. Here are the steps to do so:

  1. Click on the Apple Menu from the top left corner.
  2. Select System Preferences > Software Update > Upgrade / Update Now.
    Mac os update
  3. Install the latest available update and restart your Mac.

#macos #selenium #webdriver #selenium-chromedriver #apple-silicon

#macos #селен #webdriver #selenium-chromedriver #apple-silicon

Вопрос:

Внезапно во второй половине дня 6 января 2021 года мои тесты Selenium Protractor в OSX перестали работать с загадочной ошибкой

 spawn Unknown system error -86
 

Я провел некоторое исследование и обнаружил, что номер ошибки 86 совпадает с

 Bad CPU type in executable
 

и выполнил следующее, чтобы сравнить архитектуру процессора моего двоичного файла chromedriver с моей системой:

 % file chromedriver_87.0.4280.88
chromedriver_87.0.4280.88: Mach-O 64-bit executable arm64
% uname -a
Darwin kobl179273m 19.6.0 Darwin Kernel Version 19.6.0: Thu Oct 29 22:56:45 PDT 2020; root:xnu-6153.141.2.2~1/RELEASE_X86_64 x86_64
% uname -p
i386
 

Как я могу исправить двоичный файл chromedriver, используемый моим Selenium, чтобы он запускался на моем Intel x64 mac и очищал сообщение «системная ошибка -86» или «Неправильный тип процессора»?

Комментарии:

1. Похоже, что chromedriver теперь поддерживает архитектуру Apple Silicon ARM, а «обновление webdriver-manager —versions.chrome=<version>» теперь всегда использует сборку chromedriver arm64 из chromedriver.storage.googleapis.com вместо сборки x86_64. Я пытаюсь выяснить, как заставить webdriver-manager вместо этого загрузить сборку intel x86.

2. Проблема в том, что до версии chrome 86 была только одна версия для mac64 chromedriver. Но начиная с версии Chrome 87. Для chrome mac64 и mac64_ml есть два двоичных файла. Загружается только mac64_ml, который предназначен для arm64 arch, поэтому исправление необходимо выполнить в webdriver_manager chrome_xml.js .

3. Существует открытая проблема. github.com/angular/webdriver-manager/issues/476

4. Кстати, совершенно случайно, что код ошибки 86 можно исправить, откатившись к Chrome 86

Ответ №1:

Проблема описана в https://github.com/angular/webdriver-manager/issues/476 . Теперь это исправлено в 12.1.8, поэтому просто обновите этот webdriver manager.

Для большинства пользователей это может быть достигнуто с помощью

 npm uninstall protractor amp;amp; npm install protractor
 

Комментарии:

1. Я запустил новую npm install версию с последней версией Protractor, и это исправило ее. Спасибо.

2. Я отмечаю это как предпочтительный ответ, поскольку, хотя информация в моем другом ответе может быть полезна всем, кто в будущем получит unkonwn system error -86, для большинства людей, которые видят ошибку из-за выпуска Chromedriver _m1 Silicon Arm, самым простым решением будет продолжить и обновитьк более новой версии protractor и webdriver-manager, которая исправляет это.

3. Для некоторых это может быть здравым смыслом, но мне пришлось зайти в usr/local/lib/node_modules моего mac и удалить webdriver-manager каталог перед запуском npm install . После того, как я это сделал, все заработало. Кстати, повторная установка оказалась в корзине моего недавно установленного каталога .nvm, найденного при запуске which webdriver-manager .

Ответ №2:

Редактировать: этот ответ следует считать устаревшим теперь, когда основная ошибка в webdriver-manager была исправлена. Лучшим решением было бы перейти на новейшую версию webdriver-manager. Приведенный ниже ответ может быть полезен, если людям нужно использовать более старую версию webdriver-manager, в которой все еще есть ошибка.

Согласно комментарию Дипака Шринивасана выше, эта ошибка вызвана https://github.com/angular/webdriver-manager/issues/476

Основная причина: команда ChromeDriver добавила «_m1» в конец имени файла для своих Apple Silicon ARM-версий Chromedriver, но и в версиях chromedriver для Silicon, и для Intel в имени файла указано «mac64», а номер версии точно такой же. Это приводит к тому, что webdriver-manager всегда загружает кремниевую сборку Chromedriver, даже на компьютерах Intel Mac. В качестве общего решения просто избегайте использования chromedriver с именем файла _m1, если вы используете Intel Mac.

Решение 1. Понизьте версию до Chrome 86.0.4240.198 и Chromedriver 86.0.4240.22. Эти версии работают вместе и являются самыми последними версиями до появления новой и проблемной поддержки Silicon ARM.

Страница загрузки Chrome 86: https://google-chrome.en.uptodown.com/mac/download/2920124

Отключить автоматическое обновление в Chrome: https://superuser.com/questions/1359017/how-do-i-disable-automatic-updates-of-google-chrome-on-mac-os-x

Хромированный привод 86: https://chromedriver.storage.googleapis.com/index.html?path=86.0.4240.22 /

 % webdriver-manager update --versions.chrome=86.0.4240.22
 

Решение 2. Измените пакет npm webdriver-manager, чтобы указать на правильный chromedriver (спасибо ciekaway со страницы проблем angular github за это исправление)

Измените следующий файл

 node_modules/webdriver-manager/built/lib/files/file_manager.js
 

или, если используется транспортир

 node_modules/protractor/node_modules/webdriver-manager/built/lib/files/file_manager.js
 

В верхней части метода DownloadFile около строки 166 добавьте следующую строку, чтобы удалить «_m1» из имени файла:

 fileUrl.url = fileUrl.url.replace(/_m1/, '');
 

Это должно быть после начала .затем блок, который начинается с

 binary.getUrl(binary.version()).then(fileUrl => {
 

это также должно быть перед следующей ссылкой на fileURL.
Например:

 binary.getUrl(binary.version()).then(fileUrl => {
    binary.versionCustom = fileUrl.version;
    fileUrl.url = fileUrl.url.replace(/_m1/, '');
    let filePath = path.resolve(outputDir, binary.filename());
 

Обратите внимание, что это решение является временным. Он будет перезаписан при установке npm. Chromedriver и / или команда webdriver-manager, вероятно, устранят эту проблему, после чего вам следует очистить модифицированную версию вашего webdriver-manager и загрузить исправление из npm.

Комментарии:

1. Пытался сделать это с помощью решения 1, но позже получил ошибку при попытке запустить тест транспортира. Ошибка: E / launcher — SessionNotCreatedError: не удалось создать новую службу: ChromeDriverService. Информация о драйвере: driver.version: неизвестно

2. Оказалось, мне пришлось указать версию, например: webdriver-manager start —versions.chrome 86.0.4240.22

3. Я попробовал решение 1, но я получаю ту же ошибку, что и @user1328889. Я использовал ./node_modules/.bin/webdriver-manager start —versions.chrome= 86.0.4240.198, но это дало мне эту ошибку: E /start — Selenium Standalone отсутствует. Установка с обновлением webdriver-manager — автономная. Я вижу selenium-server-standalone-3.141.59.jar однако в моей папке selenium.

4. Еще одна проблема с решением № 1 заключается в том, что Chrome продолжает автоматическое обновление до версии 88 даже после отключения обновлений. В настройках Chrome отображается 86, но при щелчке правой кнопкой мыши на информации о приложении вы можете увидеть, что версия 88. Из-за этого тесты завершаются с ошибкой: essionNotCreatedError: сессия не создана: эта версия ChromeDriver поддерживает только версию Chrome 86 Текущая версия браузера 88.0.4324.96 с двоичным путем / Applications/ Google Chrome.app/Contents/ macOS / Google Chrome

5. Спасибо @emery. Я попробовал npm uninstall protractor amp;amp; npm install protractor, и теперь он работает.

Ответ №3:

Для macOS Catalina версии 10.15.6 (19G73)

В моем случае я работал с Rails и Capybara для тестирования функций. То, что сработало для меня, было

  1. Сначала найдите фактическое местоположение запущенного chromedriver:
     which chromedriver
    
    # Which returned:
    
    /Users/alex/.webdrivers/chromedriver
     
  2. Затем установите chromedriver через Homebrew:
     brew install chromedriver
     
  3. Затем удалите старую ссылку на chromedriver, найденную в предыдущем местоположении с помощью:
     rm /Users/alex/.webdrivers/chromedriver
     
  4. Теперь свяжите старую ссылку chromedriver с той, которая установлена с brew:
     ln -s /usr/local/bin/chromedriver /Users/alex/.webdrivers/chromedriver
     
  5. Затем откройте приложение Finder, затем нажмите «Перейти в меню», а затем нажмите Go to folder ... «Опция» и введите этот маршрут:
     /usr/local/Caskroom/chromedriver/
     
  6. Там вы должны увидеть папку с установленной вами версией chromedriver, что-то вроде этого:
     88.0.4324.96
     
  7. Введите эту папку, и вы должны увидеть двоичный файл chromedriver.
  8. Щелкните по нему правой кнопкой мыши и нажмите Open

    Теперь у вас должно появиться окно терминала с выводом:

     Last login: Sun Jan 31 12:29:15 on ttys001
    /usr/local/Caskroom/chromedriver/88.0.4324.96/chromedriver ; exit;
       ~  /usr/local/Caskroom/chromedriver/88.0.4324.96/chromedriver ; exit;
    Starting ChromeDriver 88.0.4324.96 (68dba2d8a0b149a1d3afac56fa74648032bcf46b-    refs/branch-heads/4324@{#1784}) on port 9515
    Only local connections are allowed.
    Please see https://chromedriver.chromium.org/security-considerations for suggestions on keeping ChromeDriver safe.
    ChromeDriver was started successfully.
     
  9. Наконец, нажмите Ctrl C , чтобы остановить выполнение и выйти из окна терминала.

Теперь вы должны иметь возможность запускать тесты capybara.

Комментарии:

1. Это конкретный набор инструкций для обновления Chromedriver в Rails / Capybara framework, который может быть более общим ответом на вопрос «Как мне обновить Chromedriver в Rails / Capybara framework». Спасибо за вклад.

Ответ №4:

 npm uninstall protractor amp;amp; npm install protractor
 

Ответ №5:

Если вы используете webdrivers gem, обновите его:

 bundle update webdrivers
 

Понравилась статья? Поделить с друзьями:
  • Catgenie error 3
  • Categoryinfo ошибка безопасности pssecurityexception fullyqualifiederrorid unauthorizedaccess
  • Categoryinfo ошибка безопасности parentcontainserrorrecordexception
  • Catch websocket error
  • Catch runtime error c