Google chrome devtools 无法为devtools启动http服务器。找不到Stop devtools/HTTP/1.1 404

Google chrome devtools 无法为devtools启动http服务器。找不到Stop devtools/HTTP/1.1 404,google-chrome-devtools,Google Chrome Devtools,在启动时,我会收到logcat中显示的以下错误消息 org.chromium.chrome/chromium:[错误:devtools\u http\u handler.cc(249)]无法为devtools启动http服务器。停止devtools。 我正在运行Chromium build 65.0.3317.0。此错误不会发生在Chromium的早期版本54.0.2840.9上,Chromium devtools工作正常。当我尝试使用devtools检查远程android设备时,会打开一个空白

在启动时,我会收到logcat中显示的以下错误消息

org.chromium.chrome/chromium:[错误:devtools\u http\u handler.cc(249)]无法为devtools启动http服务器。停止devtools。

我正在运行Chromium build 65.0.3317.0。此错误不会发生在Chromium的早期版本54.0.2840.9上,Chromium devtools工作正常。当我尝试使用devtools检查远程android设备时,会打开一个空白选项卡,出现错误
HTTP/1.1 404 Not Found

我还将在抛出错误的文件中附加不同的属性

铬54-devtools_http_handler.cc

void StartServerOnHandlerThread(
    base::WeakPtr<DevToolsHttpHandler> handler,
    base::Thread* thread,
    DevToolsHttpHandler::ServerSocketFactory* server_socket_factory,
    const base::FilePath& output_directory,
    const base::FilePath& frontend_dir,
    bool bundles_resources) {
  DCHECK(thread->task_runner()->BelongsToCurrentThread());
  ServerWrapper* server_wrapper = nullptr;
  std::unique_ptr<net::ServerSocket> server_socket =
      server_socket_factory->CreateForHttpServer();
  std::unique_ptr<net::IPEndPoint> ip_address(new net::IPEndPoint);
  if (server_socket) {
    server_wrapper = new ServerWrapper(handler, std::move(server_socket),
                                       frontend_dir, bundles_resources);
    if (!output_directory.empty())
      server_wrapper->WriteActivePortToUserProfile(output_directory);

    if (server_wrapper->GetLocalAddress(ip_address.get()) != net::OK)
      ip_address.reset();
  } else {
    ip_address.reset();
    LOG(ERROR) << "Cannot start http server for devtools. Stop devtools.";
  }
  BrowserThread::PostTask(BrowserThread::UI, FROM_HERE,
      base::Bind(&ServerStartedOnUI,
                 handler,
                 thread,
                 server_wrapper,
                 server_socket_factory,
                 base::Passed(&ip_address)));
}
void StartServerOnHandlerThread(
    base::WeakPtr<DevToolsHttpHandler> handler,
    std::unique_ptr<base::Thread> thread,
    std::unique_ptr<DevToolsSocketFactory> socket_factory,
    const base::FilePath& output_directory,
    const base::FilePath& frontend_dir,
    const std::string& browser_guid,
    bool bundles_resources) {
  DCHECK(thread->task_runner()->BelongsToCurrentThread());
  std::unique_ptr<ServerWrapper> server_wrapper;
  std::unique_ptr<net::ServerSocket> server_socket =
      socket_factory->CreateForHttpServer();
  std::unique_ptr<net::IPEndPoint> ip_address(new net::IPEndPoint);
  if (server_socket) {
    server_wrapper.reset(new ServerWrapper(handler, std::move(server_socket),
                                           frontend_dir, bundles_resources));
    if (server_wrapper->GetLocalAddress(ip_address.get()) != net::OK)
      ip_address.reset();
  } else {
    ip_address.reset();
  }

  if (ip_address) {
    std::string message = base::StringPrintf(
        "\nDevTools listening on ws://%s%s\n", ip_address->ToString().c_str(),
        browser_guid.c_str());
    fprintf(stderr, "%s", message.c_str());
    fflush(stderr);

    // Write this port to a well-known file in the profile directory
    // so Telemetry can pick it up.
    if (!output_directory.empty()) {
      base::FilePath path =
          output_directory.Append(kDevToolsActivePortFileName);
      std::string port_target_string = base::StringPrintf(
          "%d\n%s", ip_address->port(), browser_guid.c_str());
      if (base::WriteFile(path, port_target_string.c_str(),
                          static_cast<int>(port_target_string.length())) < 0) {
        LOG(ERROR) << "Error writing DevTools active port to file";
      }
    }
  } else {
    LOG(ERROR) << "Cannot start http server for devtools. Stop devtools.";
  }

  BrowserThread::PostTask(
      BrowserThread::UI, FROM_HERE,
      base::BindOnce(&ServerStartedOnUI, std::move(handler), thread.release(),
                     server_wrapper.release(), socket_factory.release(),
                     std::move(ip_address)));
}
void StartServerOnHandlerThread(
base::WeakPtr处理程序,
基本::线程*线程,
DevToolsHttpHandler::ServerSocketFactory*服务器插座工厂,
常量基::文件路径和输出目录,
常量基::文件路径和前端目录,
布尔包(U资源){
DCHECK(线程->任务运行程序()->属于当前线程());
ServerWrapper*server_wrapper=nullptr;
std::唯一的\u ptr服务器\u套接字=
服务器\u套接字\u工厂->CreateForHttpServer();
std::唯一的ptr ip地址(新的网络::IPEndPoint);
if(服务器\ U套接字){
server\u wrapper=newserverwrapper(处理程序,std::move(server\u套接字),
前端_dir、捆绑_资源);
如果(!output_directory.empty())
服务器\u包装->WriteActivePortToUserProfile(输出\u目录);
if(server\u wrapper->GetLocalAddress(ip\u address.get())!=net::OK)
ip_地址。重置();
}否则{
ip_地址。重置();
日志(错误)任务\u runner()->BelongsToCurrentThread());
std::唯一的\u ptr服务器\u包装器;
std::唯一的\u ptr服务器\u套接字=
套接字工厂->CreateForHttpServer();
std::唯一的ptr ip地址(新的网络::IPEndPoint);
if(服务器\ U套接字){
重置(新的ServerWrapper(处理程序,std::move(服务器套接字)),
前端_dir,bundle_resources));
if(server\u wrapper->GetLocalAddress(ip\u address.get())!=net::OK)
ip_地址。重置();
}否则{
ip_地址。重置();
}
如果(ip_地址){
std::string message=base::StringPrintf(
“\n侦听ws://%s%s\n”的VTools,ip\U地址->ToString().c\u str(),
浏览器_guid.c_str());
fprintf(stderr,“%s”,message.c_str());
fflush(stderr);
//将此端口写入配置文件目录中的已知文件
//所以遥测技术可以检测到它。
如果(!output_directory.empty()){
基本::文件路径=
output_directory.Append(kdevtoolsactiveport文件名);
std::string port\u target\u string=base::StringPrintf(
%d\n%s,“ip地址->端口(),浏览器\u guid.c\u str());
if(base::WriteFile(path,port\u target\u string.c\u str(),
静态\u转换(端口\u目标\u字符串.length())<0){
日志(错误)